2017-03-12 17 views
0

私は今何十ものウェブサイトや投稿を閲覧しており、「正しい」ものは何も見つかりません。特定のセルの値に基づいてGridviewの行の色を変更するには? Asp.net

私が望むのは、特定のセル値に基づいてDatatable/GridViewに赤色の行をペイントすることです。

ここに私を助けてください:(。。。

for (int i = 0; i < TheFinalTable.Rows.Count; i++) 
     { 
      TheLevel = myUsers[i, 0]; 

      if (TheLevel == "2" && TheFinalTable.Rows[i][4].ToString() == myUsers[i, 1]) 
      { 
       Gridview1.Rows[i].ForeColor = System.Drawing.Color.LightGreen; 
      } 
      if (TheLevel == "3" && TheFinalTable.Rows[i][4].ToString() == myUsers[i, 1]) 
      { 
       Gridview1.Rows[i].ForeColor = System.Drawing.Color.Red; 

      } 
     } 

"MyUsers" レベルとIDを含む文字列の配列です。

"TheFinalTable" は、以下が含まれてい

 Level | id 1 | 2 64 2 | 3 23 
メール、名前、姓、電話番号、ID、賃貸料、LastLog。


2番目のif(真である)になると、「Index is range of out of range」とも言われています。

主な質問はこれです:行の1つのセルの値または単に行数で基づいて、特定の行に異なる色を設定する方法

お近くの皆様からお待ちしています。

注意してください。

答えて

1

は、ページのロード方法におけるグリッドのRowDataBoundイベント登録:行がデータにバインドされるたび

this.GridView1.RowDataBound += GridView1_RowDataBound; 

、それはあなたのハンドラを呼び出します。ここでイベントハンドラを使用して、背景色を変更します。

private void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    //make sure it is not the header row 
    if(e.Row.RowType == DataControlRowType.DataRow) 
    { 
     // whatever your condition 
     if(e.Row.Cells[0].Text == "Whatever") 
     { 
     e.Row.BackColor = Drawing.Color.Red // This will make row back color red 
     } 
    } 
} 
関連する問題