Не может найти Radajaxmanager при использовании внутри пользовательского контроля

У меня возникла проблема с удалением записи с RadAjaxManager.

Ошибка типа: 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 ответ

  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

Другие вопросы по тегам