2017-08-30 61 views
0

我有一個GridView,我在這裏列出客戶公司的值。例如,網格列出了公司名稱和價值。我想給一個淺灰背景顏色爲所有公司1的行,那麼白色公司2的行,然後返回到淺灰公司3的行和交替如此。通過交替行數據類型設置gridview行背景顏色


公司112

公司1 15

公司118


公司2 25

公司2 78

公司2 109


公司3 66

公司3 1


這能在_RowDataBound事件簡單地完成,如果又如何?

回答

0

我設法利用這個問題

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; 
0

的在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; 
     } 
    } 
}