【问题标题】:Background color in GridViewGridView 中的背景颜色
【发布时间】:2015-09-28 19:15:16
【问题描述】:

在我的 GridView 中,我有列名Switch,每行可以包含三个不同的值; L、B 和 T。

您可以根据值 L、B 和 T 关联不同的背景颜色吗?

例如,当列名Switch中的行包含值L时,背景颜色为黄色,当值B时,行上的背景颜色为绿色,值T时,行上的背景颜色为红色。

你能帮帮我吗?

【问题讨论】:

  • 您可以在网格视图的 rowdatabound 事件上执行此操作。此事件将针对网格的每一行触发,这意味着您将可以访问每一行的数据。这样您就可以检查值并绘制行背景颜色。

标签: c# gridview background-color


【解决方案1】:

你可以在RowsAdded活动中试试这个

private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
    {
        var row = dataGridView1.Rows[e.RowIndex];
        if (String.CompareOrdinal(row.Cells["Switch"].Value.ToString(), "L") == 0)
        {
            row.DefaultCellStyle.BackColor = Color.Yellow;
        }
        else if (String.CompareOrdinal(row.Cells["Switch"].Value.ToString(), "B") == 0)
        {
            row.DefaultCellStyle.BackColor = Color.Blue;
        }
    }

【讨论】:

    【解决方案2】:

    如果网格存在于 windows 窗体中,您可以这样做,

    dataGridView1.Rows.OfType<DataGridViewRow>()
                      .Where(x => Convert.ToString(x.Cells["Switch"].Value) == "L").ToList()
                      .ForEach(x => x.DefaultCellStyle.BackColor = Color.Yellow);
    

    希望这会有所帮助...

    【讨论】:

    • 您的建议应该包含在 RowDataBound 事件中,对吗?
    猜你喜欢
    • 2013-02-11
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多