我有以下代码用于上传文件:
<asp:Panel ID="pnlCauses" runat="server">
<asp:FileUpload ID="uplCauses" runat="server" />
<asp:Button runat="server" ID="btnUplCauses" Text="Upload" OnClick="btnUplCauses_Click" />
<asp:Label runat="server" ID="lblUplCausesStatus" Text="Upload status: " />
</asp:Panel>
我使用以下代码只允许pnlCauses刷新。
<rad:AjaxSetting AjaxControlID="btnUplCauses">
<UpdatedControls>
<rad:AjaxUpdatedControl ControlID="pnlCauses" />
</UpdatedControls>
</rad:AjaxSetting>
但似乎上传控件和Ajax不能一起工作。
有人可以建议我替代方案吗?那我怎么能只允许面板刷新而不是完成页面呢?
答案 0 :(得分:3)
ASP.NET FileUpload无法使用AJAX调用上传文件。您必须强制回发请求,或使用RadAsyncUpload之类的控件异步上传文件。
对于如何在RadAjaxPanel中禁用上传按钮AJAX调用,Telerik文档对于较旧的Telerik ASP.NET控件有一个workaround:<script type="text/javascript">
//on upload button click temporarily disables ajax to perform upload actions
function conditionalPostback(sender, args)
{
if(args.EventTarget == "<%= ButtonSubmit.UniqueID %>")
{
args.EnableAjax = false;
}
}
</script>
<rada:radajaxpanel runat="server" id="RadAjaxPanel1"
clientevents-onrequeststart="conditionalPostback">
<rad:radupload runat="server" id="RadUpload1" />
<asp:button id="ButtonSubmit" runat="server" text="Upload" />
</rada:radajaxpanel>