【问题标题】:Asp.net Ajax with Master page带有母版页的 Asp.net Ajax
【发布时间】:2009-09-03 19:12:44
【问题描述】:

我正在使用 .Net Framework 2.0 和 VS 2008 Team System 在 ASP.net 中工作

我有一个母版页和 n 个内容页。在母版页上我放了一个 ScriptManager 标记,在内容页上我有一个 UpdatePanel。但是,每当从内容页面触发按钮点击等事件时,整个页面都会被后退。我该如何解决?

【问题讨论】:

    标签: asp.net-ajax asp.net-2.0


    【解决方案1】:

    您可以通过GetCurrent()方法访问页面的ScriptManager对象。

    此代码从内容页面访问母版页中的 ScriptManager(添加按钮控件 btnSubmit 作为异步控件):

    protected void Page_Load(object sender, EventArgs e)
    {
      ScriptManager _scriptMan = ScriptManager.GetCurrent(this);
      _scriptMan.RegisterAsyncPostBackControl(this.btnSubmit);
    }
    

    但是,我只需将 ScriptManager 从 MasterPage 移动到每个内容页面,因为这样您就不必这样做了。

    【讨论】:

      【解决方案2】:

      这取决于您如何设置更新面板。

      要看的关键是:

      • UpdatePanel 的 UpdateMode 属性
      • UpdatePanel 的 ChildrenAsTriggers 属性
      • UpdatePanel 的触发器集合

      例如,如果您只想在一个按钮上更新面板,请按 go for:

      • UpdateMode=Conditional
      • ChildrenAsTriggers=False
      • 并将按钮添加到 UpdatePanel 的 Triggers 集合中

      或者,如果您希望面板中的所有控件触发部分回发,则只需设置 ChildrenAsTriggers=True 并且不要使用 Triggers 集合。

      This MSDN article 更详细地描述了上述属性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多