c# - AsyncFileUpload 回发导致双重上传

标签 c# asp.net ajax gridview asyncfileupload

我在网页上实现了 AsyncFileUpload 控件。此网页要求上传的文件显示在 GridView 中。
GridView 包含以下列:“文件名”、“ secret ”复选框和“删除” "按钮删除上传的文件。

由于 AsyncFileUpload 回发不会执行完整页面 回发,我需要在 OnClientUploadComplete 事件上“强制”回发AsyncFileUpload 控件,以便在上传文件后呈现 gridview。
OnClientUploadCompleteEvent 中,我使用 javascript 调用 __doPostBack。在这个回发中,我只绑定(bind)了我的GridView并显示了文件信息(我没有重新保存文件)。

问题:AsyncFileUpload 的第一个“部分”回发中,文件按预期成功上传。在我使用 __doPostBack 强制执行的第二次回传中,文件被重新上传。
您可以使用显示上传进度的 Google Chrome 来验证这一点。行为如下:
- 选择文件后,进度从 0% 增加到 100% 并上传文件。
- 在此之后,执行 __doPostBack,您可以看到上传进度再次从 0% 增加到 100%。

如何确保 Gridview 已正确填充,但文件不会被上传两次?

我附上了一个包含问题的示例解决方案:https://www.yousendit.com/download/MzZFc2ZBNDRrYUN4dnc9PQ

最佳答案

有一个更简单的解决方案

@@t0x1n3Himself the solution u gave is very simple but does not work

用更新面板名称围绕 AsyncFileUpload UpdatePanelAFU 然后在 UpdatePanelAFU 中执行以下操作:

 protected void AsyncFileUpload_UpdatePanelAFU(object sender,AjaxControlToolkit.AsyncFileUploadEventArgs e)
{

    if (Request.Params.Get("__EVENTTARGET") != "UpdatePanelAFU")
        return;
..... rest of the code 
}

尽情享受吧!

关于c# - AsyncFileUpload 回发导致双重上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5018044/

相关文章:

c# - 单元测试 : Assert range of a list with greater or lesser than

asp.net - https 请求在 Windows Azure 中不起作用

php - Ajax 帖子不返回任何内容

javascript - js中未调用回调函数

c# - 刷新进度条

javascript - Chart.js 使用 foreach mvc 生成图表

c# - 最好用的 URL 重写器是什么?

asp.net - 自动取消 SmtpClient.SendAsync 调用

javascript - 将 Ajax 与动态字段结合使用

c# - 静态方法之间的调用——这会破坏线程安全吗?