我在使用 RadAjaxManager 删除记录时遇到问题。
TypeError : ajaxManager为空。
这是我的代码:
Default.aspx的:
<asp:Content ID="Content3" ContentPlaceHolderID="a1" runat="server">
<uc1:ucMyUser runat="server" ID="ucMyUser"/>
</asp:Content>
ucMyUser :
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<telerik:RadAjaxManager ID="RadAjaxManager2" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadAjaxManager2">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="Grid1" UpdatePanelCssClass="" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadGrid ID="rgEmpCategory" runat="server">
<Columns>
---Rest other columns and configurations
<asp:ImageButton runat="server" ID="Remove" Text="Remove" ToolTip="Remove" CommandArgument='<%#Eval("ID")%>' OnClick="Remove_Click" OnClientClick='<%# Eval("ID", "javascript:return Remove(\"{0}\");") %>' />
</Columns>
母版页:
function Remove(val) {
var Value= 'Remove';
var ajaxManager = $find("ctl00_cphMain_RadAjaxManager2");
var arg = Value + "," + val; //Remove,1(1 indicates Id here)
ajaxManager.ajaxRequest(arg);
}
注意:以上脚本在我的母版页上,所以我不能这样使用:
var ajaxManager = $find("<%= RadAjaxManager2.ClientID %>");
答案 0 :(得分:1)
不要将RadAjaxManager包装在UpdatePanel或任何类型的
将RadAjaxManager移至您的母版页,这是它所属的地方
在用户控件中使用RadAjaxManagerProxy或RadAjaxPanel控件
我也看到你找到了通过服务器代码块用户在客户端上引用RadAjaxManager的正确方法
回顾这篇文章,了解您的JS功能在UC实例中的独特性,以便您可以封装它们:http://www.telerik.com/support/kb/aspnet-ajax/details/using-dynamic-unique-names-for-javascript-functions。