Asp:FileUpload和RAD ajaxmanager没有一起工作

时间:2011-10-07 08:07:37

标签: asp.net ajax file-upload rad

我有以下代码用于上传文件:

<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不能一起工作。

有人可以建议我替代方案吗?那我怎么能只允许面板刷新而不是完成页面呢?

1 个答案:

答案 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>