0

我在使用RadAjaxManager删除记录时遇到问题。

类型错误:ajaxManager为空

这是我的代码:

默认.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 %>");
4

1 回答 1

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-功能

于 2015-11-10T11:16:01.853 回答