我有一个由RadToolTipManager显示的选择对话框。该对话框由一些输入,一个RadGrid和一个用户控件中的按钮组成。当用户单击该按钮时,将关闭选择对话框。按钮后面的代码正在工作,信息通过事件处理程序传递回页面。但是,页面不会使用新数据刷新其控件。
我确定RadToolTipManager需要使用Ajax调用,我将RadAjaxManager添加到页面,将RadAjaxManagerProxy添加到User Control。但我不知道如何让用户控件中的按钮启动对页面控件的Ajax请求。
根据我的研究,我需要为页面启动AjaxRequest或__doPostBack。后者很好,实际上整个页面都需要更新。
我只是没有使用javascript /客户端编程的经验。我是否将其附加到用户控件中的Button?似乎会在后面的代码之前触发客户端脚本。后面的代码是将数据加载到需要更新的控件中的代码。而且我不知道如何获取eventTarget参数的页面名称(或页面上的面板)。
感谢任何帮助。
答案 0 :(得分: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的工作方式:)。
答案 1 :(得分:0)
在您的用户控件代码隐藏中,您可以尝试添加以下属性:
public string ButtonID {
get { return ButtonControl.ClientID; }
}
并可编程地将条目添加到RadAjaxManager。不确定这是否有效;解决方法是将所有内容包装在RadAjaxPanel中。
答案 2 :(得分:0)
我确实得到了Telerik支持的帮助。我的RadAjaxManager更新不正确。通过RadToolTip通过RadAjaxManager触发更新,我能够完成所需的工作。
那就是说,这是一个非常“Telerik”的解决方案。我更喜欢只在真正改进设计的地方使用第三方库。 rdmptn的解决方案更通用,所以给他点头。