【问题标题】:Updating controls outside of UserControl with RadAjaxManager使用 RadAjaxManager 更新 UserControl 之外的控件
【发布时间】:2013-01-27 14:25:35
【问题描述】:

我有一个由 RadToolTipManager 显示的选择对话框。该对话框由几个输入、一个 RadGrid 和一个用户控件中的按钮组成。当用户单击按钮时,选择对话框关闭。按钮后面的代码正在运行,并且信息正在通过事件处理程序传递回页面。但是,页面不会使用新数据刷新其控件。

我确定 RadToolTipManager 需要使用 Ajax 调用,我将 RadAjaxManager 添加到页面并将 RadAjaxManagerProxy 添加到用户控件。但我不知道如何获取用户控件中的按钮来启动页面上的控件的 Ajax 请求。

根据我的研究,我需要为页面启动 AjaxRequest 或 __doPostBack。后者会很好,它实际上是需要更新的整个页面。

我只是没有使用 javascript/客户端编程的经验。我是否将它附加到用户控件中的按钮?似乎这会在后面的代码之前触发客户端脚本。后面的代码是将数据加载到需要更新的控件中。而且我不确定如何为 eventTarget 参数获取页面(或页面上的面板)的名称。

感谢任何帮助。

【问题讨论】:

    标签: asp.net ajax telerik


    【解决方案1】:

    有一种更简单的方法可以在一次回发中做到这一点,无需任何 JavaScritp。

    假设 Panel1 是您希望在单击用户控件中的按钮时更新的容器。

    将 Panel1 包裹在一个

    <asp:UpdatePanel runat="server" id="up1" UpdateMode="Conditional">
    <ContentTemplate>
    <asp:Panel id="Panel1" runat="server"></asp:Panel>
    </ContentTemplate>
    </asp:UpdatePanel>
    

    在代码隐藏中调用它的 Update() 方法(在您的按钮已经调用的处理程序中)。对您希望更新的所有单独容器重复此操作。这就是 AJAX 的工作原理:)

    【讨论】:

    • 使用带有 Telerik AJAX 控件的 asp:UpdatePanel 不是一个好主意。考虑改用 RadAjaxPanel,或者最好使用 RadAjaxManager。否则你会得到意想不到的破损和令人讨厌的惊喜。
    • 我不同意你的看法。事情取决于您的确切 AJAX 设置,而不是其他任何事情。如果您嵌套更新面板,您将遇到问题。我自己喜欢带有 UpdateMode=Conditional 的 asp:UpdatePanel,因为它让我可以很好地控制部分回发设置。话又说回来,那只是我。
    • 该建议最初来自 Telerik,而不是我(尽管我过去曾因此遇到过问题)。RadAjaxPanel 本质上会生成更新面板,作为其工作方式的一部分,RadAjaxManager 也是如此。它们旨在以 UpdatePanels 不具备的方式与 Telerik 控件一起使用。 (是的,当我使用 MS Ajax 时,我也总是使用 UpdateMode=Conditional...)
    【解决方案2】:

    在您的用户控件代码隐藏中,您可以尝试添加如下属性:

    public string ButtonID {
      get { return ButtonControl.ClientID; }
    }
    

    并以编程方式将条目添加到 RadAjaxManager。不确定这是否可行;解决方法是将所有内容包装在 RadAjaxPanel 中。

    【讨论】:

      【解决方案3】:

      我确实得到了 Telerik 支持的帮助。我的 RadAjaxManager 更新不正确。通过让 RadToolTip 通过 RadAjaxManager 触发更新,我能够完成我需要的工作。

      也就是说,这是一个非常“Telerik”的解决方案。我更喜欢只在真正改进设计的地方使用第三方库。 rdmptn 的解决方案更通用,所以给他点头。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-04
        • 2019-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-27
        • 2011-06-22
        相关资源
        最近更新 更多