我有一个dnn网站,它有一个标签和一个图像按钮,点击它可以用文本框替换标签,用户可以输入他们的文本,一旦提交,标签将用这个文本更新。
现在点击图像按钮会导致页面回发,我不希望回发这个,因此我放置了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 :(得分:0)
问题在于页面上的其他服务器代码块(例如,<%=%>
,通常是 - <% ... %>
),而不是您尝试启用AJAX的这段具体代码。您可以在此处阅读更多内容:http://docs.telerik.com/devtools/aspnet-ajax/controls/ajax/radcodeblock-and-radscriptblock
因此,您应该找到使用这些代码块的位置并将其包装在RadCodeBlock控件中。通常是脚本引用控件,例如:
<telerik:RadCodeBlock runat="server" ID="RadCodeBlock1">
<script>
function getReference() {
return $find("<%=someControl.ClientID%>");
}
</script>
</telerik:RadCodeBlock>
然而,对于DNN,我不能说这些可能来自哪里。
因此,您的另一个选择是使用<asp:UpdatePanel>
控件来获取AJAX请求而不是完整的回发。原生AJAX工具集还提供了<asp:UpdateProgress>
控件,您可以使用它来代替RadAjaxPanel。