【问题标题】:Alternatives to UpdatePanel on a user control (ASCX page)用户控件上 UpdatePanel 的替代品(ASCX 页面)
【发布时间】:2010-03-25 19:43:06
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# ajax user-controls updatepanel


    【解决方案1】:

    你不能像你说的那样从UserControl 调用 webmethods。原因是标有WebMethod 属性的方法也必须是静态的。用户控件不支持这一点。如果您不愿意使用UpdatePanel,那么您没有太多选择。

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        在我的例子中,我需要在 PageMethods 执行后更新用户控件上的一些值,所以我使用 HtmlOutputWriter 构建我的用户控件来更新内容。

        为我工作!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-12
          相关资源
          最近更新 更多