每张图片对应一个input的checkbox ,选中要删除的图片后点击一个删除按钮,会提示删除成功,数据库和文件夹里都删除了,页面也刷新了,但是显示出来的却是  删除的图片依然在,只是显示成一个X的样子,然后再一次刷新的时候就没问题了,X不见了,请问这是怎么回事啊删除图片的javascript代码
    //批量删除相片
    function DeletePhotos()
    {
        var checks=new Array();
        var checklist=imgdiv.getElementsByTagName("INPUT");
        var str="";
        var count=0;
        for(var i=0;i<checklist.length;i++)
        {
            if(checklist[i].type=='checkbox'&&checklist[i].checked)
            {
                checks[count]=checklist[i].name;   
                count++;
            }
        }
        if(confirm("确定要删除吗?"))
        {
            for(var j=0;j<checks.length;j++)
            {
                str=UploadPhoto.DeletePhoto(checks[j]);
            }
            alert(str.value);
            var FolderID="<%=FolderID %>";
            imgdiv.innerHTML="";
            imgdiv.innerHTML =UploadPhoto.MyPath(FolderID).value;
        }
    }
红色部分的代码:
    [AjaxPro.AjaxMethod]
    public string DeletePhoto(string PhotoID)
    {
        DataTable dt = QTNowService.GetPhotoByPhotoID(new Guid(PhotoID));
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            string saveFileName = Path.Combine(Server.UrlDecode(path), dt.Rows[i]["FileName"].ToString());
            if (!File.Exists(HttpContext.Current.Server.MapPath("UploadImages/") + Membership.GetUser() + "\\" + dt.Rows[i]["FolderName"].ToString() + "\\" + dt.Rows[i]["FileName"].ToString()))
            {
                File.Delete(saveFileName); 
            }
        }
        if (QTNowService.DeletePhoto(new Guid(PhotoID)) == true)
        {
            return "删除成功!";
        }
        else
        {
            return "删除失败!";
        }
    }

解决方案 »

  1.   

    本地localhost好像有时候图片是浏览不出来的
      

  2.   

    " imgdiv.innerHTML =UploadPhoto.MyPath(FolderID).value; "
    这句话有问题的,你要根据UploadPhoto的返回值判断,图片删除后按正常来说UploadPhoto.MyPath(FolderID).value
    应该没有值的,只有有图片的时候才这样写.要加判断吧
    if(filePath!="")
    {
    imgdiv.innerHTML ="<img scr= test scr=filePath />" 
    }
      

  3.   

    UploadPhoto.MyPath(FolderID).value是可以确定有值的
    而且断点调试的时候UploadPhoto.MyPath(FolderID).value的值是没有问题的
    但就是显示出来时删除掉的图片会显示成一个X,要再次刷新后才会消失
      

  4.   

    imgdiv.innerHTML =UploadPhoto.MyPath(FolderID).value;
    这句代码就是重新输出图片的
      

  5.   

    而且UploadPhoto.MyPath(FolderID).value得到的值是没有问题的
      

  6.   

    lz什么时候刷新页面的?如果是删除了图片(还没有删除数据库记录)就刷新的话,肯定一个X了.再一次刷新的时候执行了删除数据库,那条记录也就没有出来了.
      

  7.   

     if(confirm("确定要删除吗?")) 
            { 
                for(var j=0;j <checks.length;j++) //这里有问题,现在的checks.length还是删除以前的值,删除了以后checks.length-1了
                { 
                    str=UploadPhoto.DeletePhoto(checks[j]); 
                } 
                alert(str.value); 
                var FolderID=" <%=FolderID %>"; 
                imgdiv.innerHTML=""; 
                imgdiv.innerHTML =UploadPhoto.MyPath(FolderID).value; 
            } 
      

  8.   

    if(confirm("确定要删除吗?")) 
            { 
                for(var j=0;j <checks.length;j++) //这里有问题,现在的checks.length还是删除以前的值,删除了以后checks.length-1了 
                { 
                    str=UploadPhoto.DeletePhoto(checks[j]); 
                } 
               这里删除之后我就在下面重新输出了,不会再去执行上面的代码了啊
                alert(str.value); 
                var FolderID=" <%=FolderID %>"; 
                imgdiv.innerHTML=""; 
                imgdiv.innerHTML =UploadPhoto.MyPath(FolderID).value; 
            }