每张图片对应一个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 "删除失败!";
}
}
//批量删除相片
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 "删除失败!";
}
}
解决方案 »
- 各位知道如何将C#类库中的类型导入到visio的数据类型中去?
- =================在火狐浏览器中 复制到粘贴板 怎么实现==================
- 空字符串插入SQL数据库之后,结果变成了1900-00-01,该如何防止这个问题的发生呢?
- 超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小。
- 问个很菜的问题!
- 我机器装的是Framework2.0不能运行Framework1.1开发的系统么?
- 如何在一个网站里同时使用两个带有web.config的.net程序?
- 求助一个批量插入记录的代码[ASP]
- 如何给水晶报表产参数值?
- 不能更新数据库
- 跪求高手帮忙!AutoEventWireup 给100分
- 接口有哪些优点?
这句话有问题的,你要根据UploadPhoto的返回值判断,图片删除后按正常来说UploadPhoto.MyPath(FolderID).value
应该没有值的,只有有图片的时候才这样写.要加判断吧
if(filePath!="")
{
imgdiv.innerHTML ="<img scr= test scr=filePath />"
}
而且断点调试的时候UploadPhoto.MyPath(FolderID).value的值是没有问题的
但就是显示出来时删除掉的图片会显示成一个X,要再次刷新后才会消失
这句代码就是重新输出图片的
{
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;
}
{
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;
}