【问题标题】:How to Change GridView Column Color Based on Column Header如何根据列标题更改 GridView 列颜色
【发布时间】:2020-09-16 14:14:21
【问题描述】:

如何根据 asp.net (vb.net) 中的列标题更改 GridView 列颜色? 例如,当列标题的文本以“GT_”开头时,整列将是红色,而以“CF_”开头的标题将是绿色。

【问题讨论】:

  • 你想改变特定列的单元格背景颜色变化吗?
  • 是的,特定列的单元格背景颜色取决于其列名。
  • 检查我的答案
  • 在此处发布您的 aspx 标记。

标签: asp.net vb.net gridview colors header


【解决方案1】:

像这样使用 rowdatabound 事件:

protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{    
  if (e.Row.RowType == DataControlRowType.DataRow)
   {
     DataRowView drv = (DataRowView)e.Row.DataItem;    
     for (int i = 0; i < drv.DataView.Table.Columns.Count; i++)
     {
       if (drv.DataView.Table.Columns[i].ColumnName.StartsWith("GT_"))    
        {
          e.Row.Cells[i].BackColor = System.Drawing.Color.LawnGreen;
          grdAdd.Columns[i].HeaderStyle.BackColor = System.Drawing.Color.Khaki;    
        }
     }
  }
}

在这里输出

【讨论】:

  • 如何调用 RowDataBound?我发现它没有进入函数
  • 当您使用 gridview 绑定数据时,RowDataBound 事件会触发,这意味着每当您在 gridview 中添加新行时,此事件都会触发。所以你不需要显式调用它,它会被隐式调用。
  • 我已经在 Page_Load 中有 GridViewID.DataBound(),但它没有进入给定的 RowDataBound 函数。我用VB写的:Protected Sub GridViewID_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
  • Vb.net 的工作方式相同,只是语法不同。你设置数据源了吗?
  • 是的,我已经在绑定前设置了数据源,数据显示在gridview上
猜你喜欢
  • 2021-04-07
  • 2020-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-17
  • 2015-01-04
  • 1970-01-01
  • 2017-03-09
相关资源
最近更新 更多