我目前正在开发ASP.NET AJAX应用程序。决定不使用UpdatePanels有明显的原因,我有什么替代品?此应用程序具有动态构建的页面,因此页面的大多数或所有组件都作为用户控件存在。
我需要从ASCX用户控制页面进行AJAX调用。由于ASCX用户控件可能不包含页面方法,我还有其他选项吗?
或者,有没有办法在ASCX页面中使用页面方法?
答案 0 :(得分:2)
如前所述,您无法从UserControl
调用网络方法。原因是标有WebMethod
属性的方法也必须是静态的。 UserControls不支持此功能。如果您不愿意使用UpdatePanel
,则没有很多选择。
你可以通过jQuery拨打AJAX
来web services
吗?这将是一个选择......
UpdatePanel
一起使用的 UpdateMode="Conditional"
控件可以让您很好地控制回调的内容,并且仍然是一个合理的解决方案。它不会像直接的ajax调用一样轻量级,但很容易维护等等。
答案 1 :(得分:0)
jQuery AJAX是我的推荐,与Web服务一起使用提供了一个很好的解决方案。
答案 2 :(得分:0)
最好的方式(我发现)是 1.将PageMethods放在父页面上 2.当PageMethod完成时,让您的用户控制通过JS方法知道它可以完成PageMethod调用 3.然后可以在用户控件上实现ICallbackHandler,以对用户控件的方法执行AJAX回调
在我的情况下,我需要在执行PageMethods后更新用户控件上的一些值,因此我使用HtmlOutputWriter构建我的用户控件来更新内容。
适合我!