FileUpload + UpdatePanel不工作在第一次点击
本文关键字:第一次 工作 UpdatePanel FileUpload | 更新日期: 2023-09-27 18:16:54
这不仅仅是一个FileUpload + UpdatePanel问题。
我有,正如许多类似的帖子中所述,在我的表单上有一个UpdatePanel和一个FileUpload控件。我也有一个PostBackTrigger设置为我的上传按钮。它的工作原理。问题是,它从来没有在第一次点击。即:
我点击浏览,选择我的文件,点击上传。什么也没发生。HasFile = false);我再次点击浏览,选择任何文件(相同或其他),按上传,它工作正常。
<asp:UpdatePanel ID="upGeneral" runat="server" >
<ContentTemplate>
...
<table id="tabPage10" runat="server" visible="false" width="100%" >
<tr>
...
<td>
<asp:FileUpload ID="fupld" runat="server" Width="80%" />
<asp:ImageButton ID="ibtnUpld" runat="server" onclick="ibtnUpld_Click" />
<td>
...
<tr>
...
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="ibtnUpld" />
</Triggers>
</asp:UpdatePanel>
我四处寻找答案,但这是一些非常奇怪的行为。到目前为止还没有。
任何想法?
谢谢
FileUpload控件被设计为只在回发场景中使用,而不是在部分页面呈现期间的异步回发场景中使用。
http://msdn.microsoft.com/en-us/ysf0192b using_the_FileUpload_Control_with_the_UpdatePanel_control
你可以使用AsyncFileUpload控件来代替AjaxControlToolkit。
<asp:AsyncFileUpload runat="server" ID="asyncFileUpload" Width="400px" ThrobberID="imageThrobber"
OnClientUploadStarted="uploadStarted" OnClientUploadError="uploadError"
ClientIDMode="AutoID" PersistFile="true" PersistedStoreType="Session" />
背后的代码:
if (asyncFileUpload.HasFile)
{
string fullPath = GetPath(asyncFileUpload.FileName);
asyncFileUpload.SaveAs(fullPath);
}
我从来没有遇到过任何问题。
对于Post back触发器,我必须在后面的代码中使用下面的代码行:
Page.Form.Enctype = "multipart/form-data";
这个效果很好。
感谢链接中的解决方案- (http://patelshailesh.com/index.php/file-upload-control-fails-first-time-then-works-on-subsequent-submits)。
变化
Visible ="false"
style="display:none"
并在代码后面更改它。
如果设置Visible="false ",控件实际上不会呈现为HTML。
使用style =" display:none"代替Visible="false"