在用户控制中使用时无法找到Radajaxmanager

时间:2015-11-09 05:33:19

标签: asp.net user-controls telerik asp.net-ajax radajaxmanager

我在使用 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 %>");

1 个答案:

答案 0 :(得分:1)

  1. 不要将RadAjaxManager包装在UpdatePanel或任何类型的

  2. 将RadAjaxManager移至您的母版页,这是它所属的地方

  3. 在用户控件中使用RadAjaxManagerProxy或RadAjaxPanel控件

  4. 我也看到你找到了通过服务器代码块用户在客户端上引用RadAjaxManager的正确方法

  5. 回顾这篇文章,了解您的JS功能在UC实例中的独特性,以便您可以封装它们:http://www.telerik.com/support/kb/aspnet-ajax/details/using-dynamic-unique-names-for-javascript-functions