2013-02-28 30 views

回答

4

您可以將GridView的DataSource轉換爲DataTable或DataView,然後對行進行計數。

DataTable dt = (DataTable) gridView.DataSource; 
int count = dt.Rows.Count; 

但是這隻會在綁定時纔可用,而不是通過回發。

要獲取發回的行計數,您可以將DataTable或其行計數存儲在會話中,然後將其綁定到GridView。

DataTable dt = GetDataSourceTable(); 
Session["RowsCount"] = dt.Rows.Count; 
Session["DataTable"] = dt; //Should be avoided since session are per user. 
gridView.DataSource = dt; 
gridView.DataBind(); 

之後,您可以從會話中訪問Count

+0

1)在'GridView1_DataBinding()'和'GridView1_DataBound()'中,GridView1.DataSource都是Nothing(在VB.NET中)。對不起,你怎麼能從無到有計數? (確保GridView1顯示幾頁。) 2)我不想寫我的'GetDatasourceTable()'。我只是依靠DataSource,我怎樣才能獲得記錄的總數呢? – user3454439 2016-12-27 03:49:43

5

可以在採集數據源投再算上如下

var count = ((ICollection<T>)GridView.DataSource).Count; 

或者,如果你有數據表作爲源然後

DataTable dt = gridView.DataSource as DataTable; 
int count = dt.Rows.Count; 
3

你試過像下面?

yourDataTable.Rows.Count(); 
0

你可以試試這個:

textBox1.Text = gridView1.RowCount.ToString();