首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RadAjaxManager更新UserControl外部的控件

使用RadAjaxManager更新UserControl外部的控件
EN

Stack Overflow用户
提问于 2013-01-27 22:25:35
回答 3查看 2.3K关注 0票数 1

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

我确定RadToolTipManager需要使用Ajax调用,并将RadAjaxManager添加到页面,将RadAjaxManagerProxy添加到用户控件。但是我不知道如何让User Control中的按钮对页面上的控件发起Ajax请求。

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

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

任何帮助都是非常感谢的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-01 19:29:57

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

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

将Panel1包装在

代码语言:javascript
复制
<asp:UpdatePanel runat="server" id="up1" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel id="Panel1" runat="server"></asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>

在代码隐藏中,调用其Update()方法(在您的按钮已经调用的处理程序中)。对要更新的所有单独容器重复上述操作。这就是AJAX的工作方式:)

票数 1
EN

Stack Overflow用户

发布于 2013-01-30 22:06:53

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

代码语言:javascript
复制
public string ButtonID {
  get { return ButtonControl.ClientID; }
}

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

票数 0
EN

Stack Overflow用户

发布于 2013-02-01 20:41:36

在这方面我确实得到了Telerik支持的帮助。我的RadAjaxManager更新不正确。通过让RadToolTip通过RadAjaxManager触发更新,我能够完成我需要的事情。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14548323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档