Изменение цвета ячейки на разные значения – Gridview

Мне нужно выделить две последовательные ячейки.

Каждый из них в строке, если они имеют разные значения, когда databindind значения в gridview.

Итак, если в строке 1 у меня есть ячейка «ABC», а в строке 2 у меня есть ячейка «CBA».

Мне нужно покрасить каждую ячейку другого цвета.

Каков наилучший способ сделать это?

вы можете сделать это в событии rowdatabound gridview. Сохраните предыдущую строку в viewstate или session и сопоставьте ее со следующей строкой. Если это не соответствует, измените цвет, иначе не измените.

Это называется Условное форматирование

Вы можете включить событие RowDataBound в разметке

  

И поместите это в свой файл Code-Behind.

 protected void RowDataBound(Object sender, GridViewRowEventArgs e) { if(e.Row.RowType == DataControlRowType.DataRow) { if(e.Row.RowIndex == 0) // This is row no.1 if(e.Row.Cells[0].Text == "ABC") e.Row.Cells[0].BackColor = Color.Red; if(e.Row.RowIndex == 1) // This is row no.2 if(e.Row.Cells[0].Text == "CBA") e.Row.Cells[0].BackColor = Color.Green; } } 

Добавьте в gridview в html часть страницы OnRowDataBound = “gridView1_DataBinding”. Затем добавьте обработчик событий codebehind:

 protected void gridView1_DataBinding(object sender, GridViewRowEventArgs e) { if (e.Row.RowType != DataControlRowType.DataRow) return; var c = e.Row.FindControl("IdOfControl") as Label; if(c != null) { if (c.Text == "ABC") e.Row.BackColor = GetColor("Gray"); if (c.Text == "BCA") e.Row.BackColor = GetColor("Green"); } } private Color GetColor(string color) { return Color.FromName(color); } 

С уважением, Дима.

если я понимаю вас правильно, вы хотите изменить цвет ячейки, в зависимости от ее ценности. если это правильно, вы можете попробовать:

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { if ((Label)e.Row.Cells[0].FindControl("ValueHoldingControl").Text == "ABC") { //Coloring the cell } } } 
 void gvShowFullDetail_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml("#AECD6F"); } } 
Interesting Posts
Давайте будем гением компьютера.