[英]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.