如何在GridView的数据源中获得记录的计数

本文关键字:记录 数据源 GridView | 更新日期: 2023-09-27 18:01:26

我有一个grid view已经与模型绑定,现在我想得到这个GridView's Datatable中的行数?页数上没有。

如何在GridView的数据源中获得记录的计数

可以在集合中强制转换数据源,然后按以下方式计数

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

如果数据源是datatable,那么

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

可以将GridView的DataSource转换为DataTable或DataView,然后计算行数。

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

但是这只在绑定时可用,而不是在回发时可用。

要获得post上的行计数,可以在绑定到GridView之前将DataTable或其行计数存储在会话中。

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

您尝试过以下操作吗?

yourDataTable.Rows.Count();

你可以试试:

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

您可以使用以下代码:

DataView MyDV = (DataView)SqldatasourceName.Select(DataSourceSelectArguments.Empty);
MyDV.RowFilter = SqldatasourceName.FilterExpression;
int RecordCount = MyDV.Count;

我做了以下的事情。

在Gridview bounbound上创建了一个事件。这将在每次绑定gridview时更新一个带有Record计数的标签。

protected void GridView1_DataBound(object sender, EventArgs e)
    {
        RecordCountLbl.Text = "Record Count: "+ GridView1.Rows.Count.ToString();
    }