2011-01-26 65 views
5

儘管多次提出類似於此的問題,但問題仍未解決。這裏是問題: 我有一個GridView它包含在一個標籤容器AJAX控制,它本身在UpdatePanel內。 Gridview工作出色,其相應的方法可以準確觸發,但是當我點擊第2頁後啓用paging(例如)後,GridView就會隱藏自己。這裏是我的PageIndexChanging()方法:ASP.net Gridview分頁功能在UpdatePanel中不起作用

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.PageIndex = e.NewPageIndex;   
    GridView1.DataBind(); 
    UpdatePanel2.Update();   
} 

爲什麼分頁導致GridView停止正常工作?我能做什麼?

+0

http://forums.asp.net/t/1091963.aspx - 可能的解決方案。 – 2011-01-26 07:11:54

回答

6

的解決方案是,你應該補充哪些是用來填充GridView控件,每個頁面索引改變時的數據集。通過這種方式,您可以確保在由gridview頁碼觸發的每個單獨回發中,結果都將被填充。

3

進一步的研究:

http://msdn.microsoft.com/en-us/library/cc295545.aspx

控件不兼容與UpdatePanel控件

以下ASP.NET控件不與部分頁面更新兼容,因此不適用於UpdatePanel控件內部:

  • GridView和DetailsView控件何時將它們的EnableSortingAndPagingCallbacks屬性設置爲true。默認值是false。
3

我剛剛試過上面的代碼。我有同樣的問題,現在它工作得很好。

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.PageIndex = e.NewPageIndex;   
    GridView1.DataBind(); 
    // UpdatePanel2.Update(); <-- Remove this line from your code. 
} 

我有GridView裏面的更新面板。您是否也在.aspx文件中編寫了事件PageIndexChanging?

希望這會有所幫助。

-1

要做到這一點,您必須重新設置頁面索引更改事件中的數據源。表現會更低,但這是你可以使它成功的方式。

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.DataSource = ;//Set again the datasource 
    GridView1.PageIndex = e.NewPageIndex; 
    GridView1.DataBind(); 
    UpdatePanel2.Update(); 
} 
+0

@法西德已經回答了這個問題。 – AsifAli72090 2017-10-07 15:25:48