我有一个由RadToolTipManager显示的选择对话框。该对话框由几个输入、一个RadGrid和一个用户控件中的按钮组成。当用户单击该按钮时,选择对话框将关闭。按钮背后的代码正在工作,并且信息正在通过事件处理程序传回页面。但是,该页不会使用新数据刷新其控件。
我确定RadToolTipManager需要使用Ajax调用,并将RadAjaxManager添加到页面,将RadAjaxManagerProxy添加到用户控件。但是我不知道如何让User Control中的按钮对页面上的控件发起Ajax请求。
根据我的研究,我需要为页面启动一个AjaxRequest或__doPostBack。后者很好,它实际上是需要更新的整个页面。
我对javascript/客户端编程没有经验。是否将其附加到用户控件中的Button?看起来这会在后台代码之前触发客户端脚本。后面的代码将数据加载到需要更新的控件中。而且我不确定如何为eventTarget参数获取页面(或页面上的面板)的名称。
任何帮助都是非常感谢的。
发布于 2013-02-01 19:29:57
有一种更简单的方法可以在一次回发中做到这一点,而不需要任何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-01-30 22:06:53
在用户控件代码隐藏中,您可以尝试添加一个属性,如下所示:
public string ButtonID {
get { return ButtonControl.ClientID; }
}并可编程地将该条目添加到RadAjaxManager。不确定这是否可行;解决方法是将所有内容包装在一个RadAjaxPanel中。
发布于 2013-02-01 20:41:36
在这方面我确实得到了Telerik支持的帮助。我的RadAjaxManager更新不正确。通过让RadToolTip通过RadAjaxManager触发更新,我能够完成我需要的事情。
也就是说,这是一个非常"Telerik“的解决方案。我更喜欢使用第三方库,只有在它们真正改进设计的地方。rdmptn的解决方案要通用得多,所以给他点头。
https://stackoverflow.com/questions/14548323
复制相似问题