1

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

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

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

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

任何帮助表示赞赏。

4

3 回答 3

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 的工作原理:)

于 2013-02-01T11:29:57.487 回答
0

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

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

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

于 2013-01-30T14:06:53.197 回答
0

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

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

于 2013-02-01T12:41:35.620 回答