Sop*_*hia 5 .net asp.net ajax updatepanel file-upload
我正在开发 ASP.Net 自定义控件。在我的控件中,我有一个 FileUpload 控件,位于 MultiView 内,位于 AJAX UpdatePanel 内。
我已将提交按钮添加到更新面板的回发触发器中。(这是让 FileUpload 在 UpdatePanel 中工作的标准修复)。
第一次提交时,FileUpload 不会上传任何内容(即控件的 FileBytes 属性的长度为零)。表单上的其他所有内容均已正确提交。
在第二次及后续提交时,上传工作正常。
什么可能导致此问题以及如何解决?
例如:
<asp:UpdatePanel runat="server" ID="update_panel" UpdateMode="Conditional">
<ContentTemplate>
<asp:MultiView runat="server" ID="mvMultiView" ActiveViewIndex="0">
<asp:View runat="server" ID="viewOne">
<!-- content -->
</asp:View>
<asp:View runat="server" ID="viewTwo">
<!-- some other form elements -->
<asp:FileUpload ID="file_upload" runat="server" />
<asp:Button ID="save_button" runat="server" Text="Save" OnClick="save_Click" ValidationGroup="group" />
</asp:View>
</asp:MultiView>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="save_button" />
</Triggers>
</ajax:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
事实证明,这是由部分页面更新期间呈现的 FileUpload 控件引起的。为了正确提交,需要使用完整回发来呈现和提交FileUpload 控件。由于第一次表单提交导致了完整的回发,因此第二次上传开始按预期进行。
解决方案: 将显示和提交文件上传控件的两个按钮添加到更新面板回发触发器。
例如:
<Triggers>
<asp:PostBackTrigger ControlID="btnShowUploadForm" />
<asp:PostBackTrigger ControlID="btnUpload" />
</Triggers>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3204 次 |
最近记录: |