4

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

4

6 回答 6

6

您可以将数据源转换为集合,然后按如下方式计算

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

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

DataTable dt = gridView.DataSource as DataTable; 
 int count = dt.Rows.Count;
于 2013-02-28T07:18:15.900 回答
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从会话中访问。

于 2013-02-28T07:18:57.710 回答
3

您是否尝试过类似以下的方法?

yourDataTable.Rows.Count();
于 2013-02-28T07:18:35.010 回答
0

你可以试试这个:

textBox1.Text = gridView1.RowCount.ToString();
于 2016-10-11T18:34:05.670 回答
0

您可以使用以下代码:

DataView MyDV = (DataView)SqldatasourceName.Select(DataSourceSelectArguments.Empty);
MyDV.RowFilter = SqldatasourceName.FilterExpression;
int RecordCount = MyDV.Count;
于 2018-12-12T16:20:05.807 回答
0

我做了以下。

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

protected void GridView1_DataBound(object sender, EventArgs e)
    {
        RecordCountLbl.Text = "Record Count: "+ GridView1.Rows.Count.ToString();
    }
于 2021-07-27T19:43:54.053 回答