用Jquary ajax 请求做了一个多选删除的功能 现在遇到一点问题.多选之后 ashx页面返回的值不是"0" 比如我勾选一个的时候 点击删除按钮 提示删除成功 但是勾选了2个返回的就是00了 这个时候我ajax请求中的返回成功的函数是0 所以没有执行提示成功和刷新页面很头疼.大家帮忙看看.
//全选或全不选
$(function(){
$('#CheckAll').click(function() {
// 全选或者取消全选
$('input[type=checkbox]').attr("checked", $(this).attr("checked"));
})
});
// 删除按钮
$('#BtnDelete').click(function() {
var msg = confirm("确定删除吗?");
if(msg){
var strids = "";
$("input[type=checkbox]:checked:not('#CheckAll')").each(function() {
// 获得ID
strids += $(this).parent().next("td").next("td").html()+"|";
//$('#Hidden7').val(strids);
});
$.ajax({
type:"get",//请求方式
url:"../ajax/AjaxDeleteRes.ashx",//载入页面的URL地址
data:{id:strids},
success:function(data){//返回成功的函数
if(data =="0"){
alert('删除成功!');
show();
setTimeout("window.location.href='../PublicResources/PublicResources.aspx'",500);
}

}); 
}
});       
ashx页面//获取资源编号
string fielid = context.Request["id"];
string[] fileids = fielid.TrimEnd('|').Split('|');//用|分开各个资源编号
Asiastar.NRBLL.File bll = new Asiastar.NRBLL.File();
foreach( string guid in fileids ) //遍历编号集
{
if( bll.FN_SerchPathByFileId(new Guid(guid)) != null || bll.FN_SerchPathByFileId(new Guid(guid)).Tables[0].Rows.Count > 0 )
{
for( int i = 0 ; i < bll.FN_SerchPathByFileId(new Guid(guid)).Tables[0].Rows.Count ; i++ )
{
string path = bll.FN_SerchPathByFileId(new Guid(guid)).Tables[0].Rows[i]["FilePath"].ToString();  //定义变量接收数据库资源完整路径
if( !Directory.Exists(path) )
{
try
{ System.IO.File.Delete(path);  //如果路径存在 先删除服务器上的文件 在执行对数据库filepath的删除操作
}
catch( Exception ex )
{
NR.Error.Log.LogType(ex.ToString());
}
NRBLL.File nbf = new Asiastar.NRBLL.File();
if( nbf.FN_DeleteRes(new Guid(guid)) == true )
{
context.Response.Write("0");
NR.Error.Log.LogType("删除资源成功!" + path);
}
else
{
context.Response.Write("1");
NR.Error.Log.LogType("添加资源失败!" + path);
}
}
}
}
}

解决方案 »

  1.   

    你程序设计的就有问题,for循环下面response.write 他肯定是i个0或者1.
    所以想办法把                                NRBLL.File nbf = new Asiastar.NRBLL.File();
                                    if( nbf.FN_DeleteRes(new Guid(guid)) == true )
                                    {
                                        context.Response.Write("0");
                                        NR.Error.Log.LogType("删除资源成功!" + path);
                                    }
                                    else
                                    {
                                        context.Response.Write("1");
                                        NR.Error.Log.LogType("添加资源失败!" + path);
                                    }
    放到for循环外面
      

  2.   

    if(text.Substring(0) =="0"){
      alert('删除成功!');
      show();
    setTimeout("window.location.href='../PublicResources/PublicResources.aspx'",500);
    }
      

  3.   

    你这里的text就是我返回的date吧?返回的是00000这样的 只留一个 你这个我试过了 不行 
      

  4.   

    你管他几个?只要能返回data,他肯定至少有一个0是吧。
    你截取第一个0不就行了么。
    我表达能力有问题?