繁体   English   中英

Gridview文件上载控件在添加更多行时丢失文件ASP.Net,C#

[英]Gridview File Upload Control loses files on add more rows ASP.Net,C#

我有带有fileupload的Gridivew,它具有添加更多行的操作。 当我单击添加更多行时,fileupload控件将丢失文件。 我需要将所有添加的行保存在一个提交按钮上,这应该将所有文件保存在一个文件夹中。 请帮助我。

提前致谢

您无法在HTTPPost之后保留input type="file"状态。 (在ASP.NET行话中,这将转换为PostBack之后不能保留asp:FileUpload的值)。

它的设计旨在解决安全问题。 在StackOverflow(搜索它)中回答了相同问题的例子太多了。 有一个Session hack提供了一种解决方法,但仅适用于单个文件。 链接在这里: https : //stackoverflow.com/a/18656681/17447

从理论上讲,您仍然可以使用Dictionary<int, FileUpload> 第一个参数将是GridViewRow.RowIndex ,第二个参数将是该行上的asp:FileUpload控件。 您可以从在会话的第一个PostBack中添加所有行开始,然后在file.HasFile等时更新它。 但是恕我直言,不要那样做,因为

  1. 它极其复杂。
  2. 错误的UX,会使用户感到困惑。 他不知道是否真的有文件。
  3. ViewState非常混乱。

这些就是您可以做的事情,

  1. 提示用户单击文件以确认添加时,文件将丢失。
  2. 放置一个文本框和按钮,要求用户预先输入要添加的文件数。
  3. 使用使用ajax添加行的第三方插件。(jqGrid和datatables.net很好。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM