通过按行数据类型交替设置 gridview 行背景颜色

Setting gridview row background colour by alternating by row data type

我有一个 GridView,我在其中列出了客户公司的值。以列出公司名称和值的网格为例。我想为 Company 1 的所有行提供 浅灰色 背景颜色,然后 white 公司 2 的行,然后返回 浅灰色 公司 3 的行,交替进行所以。


公司 1 12

公司 1 15

公司 1 18


公司 2 25

公司 2 78

公司 2 109


公司 3 66

公司 3 1


这是否可以简单地在 _RowDataBound 事件中完成,如果可以,怎么做?

我成功地使用了这个问题

alternate color gridview rows based on change of cell value asp.net

在 C# 中创建我自己的解决方案。所以基本上,创建两个全局变量。然后在 _RowDatabound 中执行以下操作

int customerCompanyID = Convert.ToInt32(dr["IRPCustomerID"]);

 if (customerCompanyID != this._trafficSourceGridCurrentCompanyID)
            {
                if (this._trafficSourceGridGroupingCssClass == 
"BackGround2")
                {
                    this._trafficSourceGridGroupingCssClass = "BackGround1";
                }
                else
                {
                    this._trafficSourceGridGroupingCssClass = "BackGround2";
                }

                this._trafficSourceGridCurrentCompanyID = customerCompanyID;                    
            }

            e.Row.CssClass = _trafficSourceGridGroupingCssClass;

RowDataBound 事件中你可以这样做:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    // check if its not a header or footer row
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        // get value from first cell of gridview
        string companyName = e.Row.Cells[0].Text;

        switch (companyName)
        {
            case "Company 1":
                e.Row.BackColor = System.Drawing.Color.LightGray;
                break;
            case "Company 2":
                e.Row.BackColor = System.Drawing.Color.White;
                break;
            case "Company 3":
                e.Row.BackColor = System.Drawing.Color.LightGray;
                break;
            default:
                break;
        }
    }
}