【问题标题】:Cant able to find Radajaxmanager when used inside user control在用户控件中使用时无法找到 Radajaxmanager
【发布时间】:2015-11-09 05:33:19
【问题描述】:

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

TypeErrorajaxManager 为空

这是我的代码:

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 %>");

【问题讨论】:

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


    【解决方案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

    【讨论】:

    • 您能否为您描述的点提供一些代码,如果我使用 RadAjaxManagerProxy 或 RadAjaxPanel,那么我将如何在客户端(即在我的脚本中)引用它??
    • 与任何其他 IScriptContol 一样 - 通过 $find()。确保将其 clientid 作为参数传递。见这里docs.telerik.com/devtools/aspnet-ajax/controls/ajax/how-to/…
    • 是的,没关系,但我仍然希望看到您的解决方案以代码的形式描述您在解决方案中列出的所有要点,因为它可以帮助我学习新的东西以及其他东西因此,如果您发布一些代码会更好,因为在搜索此问题时,我已经看到您在其他问题上发布的这一点
    • AJAX 设置对每个项目和页面都非常具体。如果我发布的内容可能适合您的设置,或者可能与您的设置没有任何共同之处,甚至可能对您的情况有害。这就是为什么我只提供一般指导方针。我会根据这些信息。
    • 你能帮我解决这个问题吗plz:stackoverflow.com/questions/33748799/…
    猜你喜欢
    • 1970-01-01
    • 2022-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    • 2022-11-28
    相关资源
    最近更新 更多