用户控件上的UpdatePanel的替代方案(ASCX页面)

时间:2010-03-25 19:43:06

标签: c# ajax user-controls updatepanel

我目前正在开发ASP.NET AJAX应用程序。决定不使用UpdatePanels有明显的原因,我有什么替代品?此应用程序具有动态构建的页面,因此页面的大多数或所有组件都作为用户控件存在。

我需要从ASCX用户控制页面进行AJAX调用。由于ASCX用户控件可能不包含页面方法,我还有其他选项吗?

或者,有没有办法在ASCX页面中使用页面方法?

3 个答案:

答案 0 :(得分:2)

如前所述,您无法从UserControl调用网络方法。原因是标有WebMethod属性的方法也必须是静态的。 UserControls不支持此功能。如果您不愿意使用UpdatePanel,则没有很多选择。

你可以通过jQuery拨打AJAXweb services吗?这将是一个选择......

UpdatePanel一起使用的

UpdateMode="Conditional"控件可以让您很好地控制回调的内容,并且仍然是一个合理的解决方案。它不会像直接的ajax调用一样轻量级,但很容易维护等等。

答案 1 :(得分:0)

jQuery AJAX是我的推荐,与Web服务一起使用提供了一个很好的解决方案。

答案 2 :(得分:0)

最好的方式(我发现)是 1.将PageMethods放在父页面上 2.当PageMethod完成时,让您的用户控制通过JS方法知道它可以完成PageMethod调用 3.然后可以在用户控件上实现ICallbackHandler,以对用户控件的方法执行AJAX回调

在我的情况下,我需要在执行PageMethods后更新用户控件上的一些值,因此我使用HtmlOutputWriter构建我的用户控件来更新内容。

适合我!