2010-03-25 83 views
2

我目前正在开发ASP.NET AJAX应用程序。决定不使用UpdatePanels的原因明显,我有什么替代方案?此应用程序具有动态构建的页面,因此页面的大部分或全部组件都以用户控件的形式存在。用户控件上的UpdatePanel的替代方案(ASCX页面)

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

或者,有没有办法避免在ASCX页面中使用Page Methods?

回答

0

最佳方法(我发现)是 1.将父页上PageMethods 2.当PageMethod的完成,让你的用户控件通过它可以在PageMethod的呼叫已完成 一个JS方法知道3.然后一个ICallbackHandler可以在用户控件上实现,以对用户控件的方法执行AJAX回调。

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

适合我!

2

正如您所说,您无法从UserControl调用webmethods。这是因为用WebMethod属性标记的方法的原因也必须是静态的。 UserControls不支持这一点。如果你不愿意使用UpdatePanel,那么你没有太多的选择。

您可以通过jQuery调用AJAX调用web services?这将是一种选择...

UpdatePanelUpdateMode="Conditional"一起使用的控件可以很好地控制回调中发生的情况,并且仍然是一个合理的解决方案。它不会像直接ajax调用那样轻便,但会很容易维护等。

0

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