gpt4 book ai didi

c# - 将 gridview backcolor 设置为数据表中的颜色?

转载 作者:行者123 更新时间:2023-11-28 17:18:02 26 4
gpt4 key购买 nike

我有一个看起来像这样的数据表:

Row1       Row2    Row3    Row4    Row5    Row6
Gold Gold
Pink Pink
#FB7703 #FB7703
Red Red
Yellow
Green
#0B93E1
Purple

这是当我将数据表绑定(bind)到网格时网格的样子: enter image description here

如何将gridview中单元格的背景颜色设置为单元格中的颜色?

我知道我需要使用 RowDataBound

gridview 的标记:

<div>
<asp:GridView ID="GridViewClicks" runat="server"
onrowdatabound="GridViewClicks_RowDataBound">
</asp:GridView>
</div>

以及填充数据表的代码隐藏:

DataTable dataTable = GetColors();

DataTable gridTable = new DataTable();
gridTable.Columns.Add("Row1", typeof(string));
gridTable.Columns.Add("Row2", typeof(string));
gridTable.Columns.Add("Row3", typeof(string));
gridTable.Columns.Add("Row4", typeof(string));
gridTable.Columns.Add("Row5", typeof(string));
gridTable.Columns.Add("Row6", typeof(string));

for (int i = 0; i < 8; i++)
{
var r = gridTable.NewRow();
gridTable.Rows.Add(r);
}

foreach (DataRow r in dataTable.Rows)
{
int rowNum = Convert.ToInt16(r[1]) - 1;
int colNum = Convert.ToInt16(r[3]);
gridTable.Rows[rowNum][colNum] = r["color"].ToString();
}

GridViewClicks.DataSource = gridTable;
GridViewClicks.DataBind();

谢谢。

最佳答案

您可以在 RowDataBound 事件中检查每个单元格的值,并根据它的值为单元格着色。

protected void GridViewClicks_RowDataBound(object sender, GridViewRowEventArgs e)
{
//check if the current row is a datarow
if (e.Row.RowType == DataControlRowType.DataRow)
{
//loop all the cells in the row
foreach (TableCell cell in e.Row.Cells)
{
//check if the color is hex or a string
if (cell.Text.Contains("#"))
{
cell.BackColor = ColorTranslator.FromHtml(cell.Text);
}
else
{
cell.BackColor = Color.FromName(cell.Text);
}
}
}
}

关于c# - 将 gridview backcolor 设置为数据表中的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43239923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com