c# - 如何在 PostBack 后维护 FileUpload 控件的状态

标签 c# asp.net file-upload

我有多个更新面板 (asp:UpdatePanel) 并且在每个更新面板中插入数据并显示在相应的网格中(网格也包含在更新面板中)。
我遇到的问题是我有一个 asp:FileUpload 控件,当数据插入这些更新面板时该控件被重置,因为很少有控件具有 AutoPostBack="true"
我在以下位置找到了更接近的解决方案之一:-
http://www.codeproject.com/Tips/101834/How-to-Maintain-FileUpload-Control-s-State-after-P

        if (Session["FileUpload1"] == null && theFile.HasFile)
        {
            Session["FileUpload1"] = theFile;
            lblStatus.Text = theFile.FileName;
        }
        else if (Session["FileUpload1"] != null && (!theFile.HasFile))
        {
            theFile = (FileUpload)Session["FileUpload1"];
            lblStatus.Text = theFile.FileName;
        }
        else if (theFile.HasFile)
        {
            Session["FileUpload1"] = theFile;
            lblStatus.Text = theFile.FileName;
        }


但是这个解决方案并没有解决我的问题。不幸的是,所有这三个 if-else 检查都没有通过条件。
我猜想存在一些与与 FileUpload 控件并行使用的 UpdatePanel 相关的问题。
我已经搜索了很多文章,但找不到解决方案。请尽早在这方面帮助我。

最佳答案

你是对的! FileUpLoad 在 UpdatePanel 中不起作用。 您必须强制完全回发才能使其正常工作。 您必须在 updatePanel 中添加一个 asp 按钮以保存所选文件。 在单击事件中将文件名保存在 session 中.. 而且要强制完整回发,您必须向 UpdatePanel 添加触发器。 UpdatePanel 应如下所示:

     <asp:UpdatePanel ID="UpdatePanel4" runat="server">
        <ContentTemplate>
            <asp:FileUpload ID="FileUpload1" runat="server"/>
            <asp:Button ID="Button3" runat="server" onclick="Button3_Click" Text="Button" />
        </ContentTemplate>
        <Triggers>
            <asp:PostBackTrigger  ControlID="Button3" />
        </Triggers>
    </asp:UpdatePanel>

有关更多信息,您可以在以下 URL 中阅读: http://www.codeproject.com/Articles/16945/Simple-AJAX-File-Upload

希望对您有所帮助...

关于c# - 如何在 PostBack 后维护 FileUpload 控件的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9799356/

相关文章:

c# - 在继承类型中访问新版本的属性/方法

c# - 无法反序列化当前 JSON 对象(空数组)

c# - 使用 msmq 队列对服务进行负载平衡?

javascript - 通过javascript函数调用asp.net传递ID

php - 从android应用程序上传多个图像文件到php服务器

java - 如何从 Android 上传文件到 Node.js 服务器

c# - WPF 中的自定义列表框

asp.net - 如何在 ItemDataBound 事件期间向 asp 转发器添加空白行?

c# - 一台服务器上 ASP.NET 站点的最大数量/限制

php - Amazon S3 预签名 url - 手动或一次性上传无效