2009-09-03 85 views
1

我在ASP.net工作與.NET Framework 2.0和VS 2008 Team System中Asp.net Ajax和母版頁

我有一個母版頁頁面和n內容頁數。在母版頁上我放了一個ScriptManager標籤,並在內容頁面上有一個UpdatePanel。但是每當按鈕點擊等事件從內容頁面觸發時,整個頁面都會後備。我如何解決這個問題?

回答

1

這取決於你如何設置你的UpdatePanel。

看,關鍵的事情是:

  • 在UpdatePanel的UpdateMode財產
  • 在UpdatePanel
  • 在UpdatePanel的Triggers集合

。例如ChildrenAsTriggers屬性,如果您只需要將面板更新爲單個按鈕即可:

  • UpdateMode=Conditional
  • ChildrenAsTriggers=False
  • 並添加按鈕,在UpdatePanel的Triggers集合

或者,如果你想在面板中的所有控件觸發局部回傳,然後只設置ChildrenAsTriggers=True並且不使用觸發器集合。

This MSDN article更詳細地描述了上述特性。

2

您可以通過GetCurrent()方法訪問頁面的ScriptManager對象。

該代碼訪問的ScriptManager在從內容頁主頁(添加一個按鈕控制btnSubmit按鈕作爲異步控制):

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

但是,我會簡單地從母版移動的ScriptManager於每個內容頁因爲那樣你就不必這樣做了。