我有多个更新面板(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有关的问题与FileUpload控件并行使用。
我搜索了很多文章,但找不到解决方案。最早请在这方面帮助我。
答案 0 :(得分:0)
你是对的! FileUpLoad在UpdatePanel中不起作用。 您必须强制完全回发才能使其正常工作。 你必须在updatePanel中添加一个asp按钮来保存所选文件。 在click事件中保存会话中的fileName .. 而且要强制完全回发你必须向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>
有关详细信息,请阅读以下网址: http://www.codeproject.com/Articles/16945/Simple-AJAX-File-Upload
希望它有用......
答案 1 :(得分:0)
我遇到了同样的问题,并通过在页面加载事件中添加以下行来解决:
Page.Form.Attributes.Add("enctype", "multipart/form-data");