【问题标题】:How to loop through a DataGrid?如何循环遍历 DataGrid?
【发布时间】:2015-12-09 11:36:31
【问题描述】:

我知道这听起来像是一个非常基本的问题,但我发现的大多数示例都是针对 GridView 的。

我只想要一个遍历 DataGrid 每一行的 foreach 循环。 DataGrid dgDetails = new DataGrid();

我试过foreach (DataGridItem dataGridItem in dgDetails.Items)

但它跳过了这个,因为它没有找到任何项目。

我想做这样的事情:

foreach (GridViewRow row in GridView1.Rows)
{
    if (row.RowIndex % 10 == 0 && row.RowIndex != 0)
    {
         row.Attributes["style"] = "page-break-after:always;";
    }
 }

但我需要将其更改为适用于 DataGrid。我试图在第十行之后插入一个分页符。 但我知道 DataGrid 不包含“行”的定义,那么可以使用什么来代替?

【问题讨论】:

  • 尝试使用foreach (DataGridRow dgRow in dgDetails.Rows) ?
  • @SuprabhatBiswal 导致错误:“System.Web.UI.WebControls.DataGrid”不包含“行”的定义,并且没有扩展方法“行”接受“系统”类型的第一个参数.Web.UI.WebControls.DataGrid' 可以找到(您是否缺少 using 指令或程序集引用?)
  • 可能是foreach(datagridviews.Rows中的DataGridViewRow行)
  • @MamunReza 仍然出现同样的错误

标签: c# asp.net datagrid


【解决方案1】:

正如前面在问题的 cmets 中所指出的,DataGrid 没有 .Rows 方法。使用foreach (DataGridItem dataGridItem in dgDetails.Items) 是遍历DataGrid 行的方法。在执行foreach 循环之前,您需要确保设置源并进行数据绑定。

    DataGrid dgDetails = new DataGrid();
    dgDetails.DataSource = your source
    dgDetails.DataBind();
    foreach (DataGridItem dataGridItem in dgDetails.Items)
    {
        //Do things with the dataGridItem here.
    }

【讨论】:

    猜你喜欢
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 2021-12-07
    • 2020-07-28
    • 2012-04-01
    • 1970-01-01
    相关资源
    最近更新 更多