2011-04-04 66 views
1

我在無條件的UpdatePanel<asp:UpdatePanel ID="upData" runat="server">中的asp.net webforms頁面上有一個DataGrid。UpdatePanel中的DataGrid在單擊列標題時執行全部刷新操作

DataBinding發生在protected override void OnLoadComplete(EventArgs e)之內,因爲我在執行綁定之前處理任何用戶事件。點擊標題可正常工作(即觸發排序),但會導致全頁刷新,而不是刷新UpdatePanel

我沒有找到一個方法來解決這個問題,但它是相當可怕的(dgGrid作爲DataGrid):

foreach (Control c in dgGrid.Controls[0].Controls[1].Controls) 
{ 
    ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(c.Controls[0]); 
} 

任何人都可以提出一個更清潔的方式來解決這一問題?

+0

我想分頁,排序等裏面UP GV沒有任何問題應該工作。在這裏檢查一個例子:http://mattberseth.com/blog/2007/07/indepth_the_updatepanel_aspnet.html所以想知道是否有其他的東西造成這種情況。 – gbs 2011-04-04 17:20:22

+0

@gbs:那麼'GridView'旁邊的'LinkBut​​ton'就可以在沒有這個問題的情況下工作。 – Brian 2011-04-04 18:06:44

+0

但是,正如你在鏈接的演示中看到的,即使排序鏈接的標題在UP內部工作正常。或者我誤解了你的問題? – gbs 2011-04-04 18:23:56

回答

0

添加以下作爲觸發你的UpdatePanel

  <Triggers> 
       <asp:AsyncPostBackTrigger ControlID="dgGrid" /> 
      </Triggers>