如何获取GridView的DataSource中的记录数

时间:2013-02-28 07:15:01

标签: c# asp.net .net

我已经与模型绑定了grid view,现在我想获取此GridView's Datatable中的行数?不在页数上。

6 个答案:

答案 0 :(得分:5)

您可以在集合中投射数据源,然后按照以下计算

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

或者如果您有数据表作为源,那么

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

答案 1 :(得分: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

答案 2 :(得分:3)

您是否尝试过以下内容?

yourDataTable.Rows.Count();

答案 3 :(得分:0)

你可以试试这个:

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

答案 4 :(得分:0)

您可以使用以下代码:

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

答案 5 :(得分:0)

我做了以下。

使用以下内容在 Gridview Databound 上创建了一个事件。每次绑定 gridview 时,这都会更新带有记录计数的标签。

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