【问题标题】:Gridview - Loop through multiple header rowsGridview - 遍历多个标题行
【发布时间】:2014-03-21 12:40:27
【问题描述】:

在控制台应用程序中,gridview 是动态创建的。

        GridView gv = new GridView();
        gv.AutoGenerateColumns = false;
        for (int i = 0; i < dt.Columns.Count; i++)
        {
            BoundField boundfield = new BoundField();
            boundfield.DataField = dt.Columns[i].ColumnName.ToString();
            boundfield.HeaderText = arr[i].ToString();// dt.Columns[i].ColumnName.ToString();
            gv.Columns.Add(boundfield);
        }

然后,又添加了两个标题行。这是一行的一部分:

        GridViewRow HeaderGridRow = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Insert);
        TableCell HeaderCell = new TableCell();

        HeaderCell.Text = "";
        HeaderCell.ColumnSpan = 4;
        HeaderGridRow.Cells.Add(HeaderCell);

        //more header cells added then another row here

        gv.DataSource = dt;
        gv.DataBind();

        gv.Controls[0].Controls.AddAt(0, HeaderGridRow);

使用foreach 循环,调整不在标题中的单独单元格边框:

        foreach (GridViewRow row in gv.Rows)
        {               
            TableCell tCell = row.Cells[0];
            tCell.Attributes["style"] = "border-right:0";               
        }

我一直在尝试找到一种方法来遍历标题行并调整单元格上的一些边框。

尝试使用foreach (GridViewRow row in gv.HeaderRow),但gv.HeaderRow 没有GetEnumerator 的公共定义。

试过for(int i = 0; i &lt; gv.HeaderRow.Cells.Count; i++),但这似乎也不起作用。

有人有什么建议吗?

谢谢!!

【问题讨论】:

  • 你试过for循环吗?
  • 是的,我在帖子中提到过。

标签: c# asp.net gridview


【解决方案1】:

试试这个

GridViewRow headerRow = gv.HeaderRow;            
TableCell hCell = headerRow.Cells[0];
hCell.Attributes["style"] = "border-right:0";               

希望对你有帮助

【讨论】:

  • 这有点帮助。 HeaderCell.Attributes["style"] = "border-top:0";工作但 HeaderCell.Attributes["style"] = "border-bottom:0";由于某种原因没有。它甚至没有显示在 html 中。另外,我需要调整 gridview 创建的原始标题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-07
  • 1970-01-01
相关资源
最近更新 更多