Asp.net Ajax与Master页面

时间:2009-09-03 10:39:21

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

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

我有一个母版页页面和n个内容页面。在主页面上我放了一个ScriptManager标签,在内容页面上我有一个UpdatePanel。但是,无论何时从内容页面触发按钮点击等事件,整个页面都会后备。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:1)

这取决于您如何设置UpdatePanel。

要注意的关键事项是:

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

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

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

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

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