2015-11-14 144 views
0

RadAjaxLoadingPanel不能與DNN一起工作

我有一個dnn網站,裏面有一個標籤和一個圖像按鈕,點擊它可以替換帶有文本框的標籤,用戶可以輸入它們的文本,一旦提交標籤就會更新這個文本。

現在點擊imagebutton會導致頁面回發,我不希望爲此回發,因此我已經放置了telerik RadAjaxLoadingPanel控件,所以很酷的加載div會在處理過程中顯示,但由於某些原因,它不是工作,

它總是會引發以下錯誤:

Please, see whether wrapping the code block, generating the exception, within RadCodeBlock resolves the error. 

下面是我的頁面的標記:(我試着用RadScriptBlock和RadCodeBlock包裝的代碼,在這兩種情況下,它會引發同樣的錯誤如上)

<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Default"> 
       </telerik:RadAjaxLoadingPanel> 
       <telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="RadAjaxLoadingPanel1"> 
       <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server"> 
       <a class="subscribetoday" href="#"> 
        <strong>Subscribe Today!</strong> <asp:Label ID="lblsubscribemsg" runat="server" Text="12 issues for $14.95"></asp:Label> 
<asp:ImageButton ID="imgEditSubscribe" runat="server" 
              OnClick="imgEditSubscribe_Click" ToolTip='Edit' ImageUrl="~/images/edit.gif" AlternateText='Edit' Visible="false" /> 
       <div id="editsubscribe" runat="server" visible="false"> 
        <asp:TextBox ID="txtSubscribe" runat="server"></asp:TextBox> <asp:ImageButton ID="imgSave" runat="server" 
              OnClick="imgSave_Click" OnClientClick="return validateSubscribeNote();" ToolTip='Save' ImageUrl="~/images/save.gif" AlternateText='Save' /> <asp:ImageButton ID="imgCancel" runat="server" 
              OnClick="imgCancel_Click" ToolTip='Cancel' ImageUrl="~/images/cancel.gif" AlternateText='Cancel' /> 

       </div> 
      <img src="img/prosound-subscribe.png" alt="Subscribe Today!"> 
       </a> 
       </telerik:RadScriptBlock> 
       </telerik:RadAjaxPanel> 

任何人都可以告訴我,我哪裏錯了。

回答

0

問題出在頁面上的其他服務器代碼塊(例如,<%=%>,通常是 - <% ... %>),而不是您嘗試啓用AJAX的這段具體代碼。你可以在這裏閱讀更多:http://docs.telerik.com/devtools/aspnet-ajax/controls/ajax/radcodeblock-and-radscriptblock

因此,你應該找到使用這些代碼塊的地方,並在RadCodeBlock控件中包裝THEM。它往往是引用控制腳本,例如:

<telerik:RadCodeBlock runat="server" ID="RadCodeBlock1"> 
    <script> 
     function getReference() { 
      return $find("<%=someControl.ClientID%>"); 
     } 
    </script> 
</telerik:RadCodeBlock> 

隨着DNN,但是,我不能說這些地方可能起源。

因此,您的其他選擇是使用<asp:UpdatePanel>控件來獲取AJAX請求,而不是完整的回發。原生AJAX工具集還提供您可以使用的<asp:UpdateProgress>控件,而不是RadAjaxPanel。