簡體   English   中英

如何根據特定的單元格值更改Gridview的行顏色? Asp.net

[英]How to change Gridview's row color based on a specific cell value? 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的字符串數組。

            Level  |  id

       1  |   2       64


       2  |   3       23

“ TheFinalTable”按以下順序包含以下內容:郵件,名稱,姓氏,電話,ID,租金,LastLog。


剛注意到它在第二個if時也說“索引超出范圍”(這是事實)。

主要問題是這樣的:

如何根據行的一個單元格值或僅根據行號為特定行設置不同的顏色?

希望很快能收到你們的來信。

照顧自己。

在頁面的加載方法中訂閱網格的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
      }
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM