2015-11-14 135 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。