代码之家  ›  专栏  ›  技术社区  ›  Amit

带母版页的ASP.NET AJAX

  •  1
  • Amit  · 技术社区  · 15 年前

    我在ASP.NET中使用.NET Framework 2.0和VS 2008团队系统

    我有一个母版页和n个内容页。在母版页上,我放置了一个scriptmanager标记,在内容页上,我有一个updatepanel。但是,每当内容页面触发类似于按钮单击的事件时,整个页面都会被后置。我如何解决这个问题?

    2 回复  |  直到 15 年前
        1
  •  1
  •   HullCitySteve    15 年前

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

    关键的是:

    • 这个 UpdateMode UpdatePanel的属性
    • 这个 ChildrenAsTriggers UpdatePanel的属性
    • UpdatePanel的Triggers集合

    例如,如果只想在单个按钮上更新面板,请按Go键:

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

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

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

        2
  •  2
  •   BenB    15 年前

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

    此代码从内容页访问母版页中的脚本管理器(将按钮控件btnSubmit添加为异步控件):

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

    但是,我只需将脚本管理器从母版页移到每个内容页,因为这样您就不必这样做了。