PostBack后如何维护FileUpload控件的状态

本文关键字:FileUpload 控件 状态 维护 何维护 PostBack | 更新日期: 2023-09-27 18:28:33

我有多个更新面板(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检查都没有通过条件。
我想存在一些与UpdatePanel相关的问题,该UpdatePanel与FileUpload控件并行使用。
我搜索了很多文章,但都找不到解决方案。请尽早在这方面帮助我。

PostBack后如何维护FileUpload控件的状态

你说得对!FileUpLoad在UpdatePanel中不起作用。必须强制完全回发才能使其工作。您必须在updatePanel中添加一个asp按钮来保存所选文件。在单击事件中,在会话中保存fileName。。而且为了强制完整的postback,您必须向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

希望对你有所帮助。。。

我遇到了同样的问题,并通过在页面加载事件中添加以下行来解决:

Page.Form.Attributes.Add("enctype", "multipart/form-data");