Изменение цвета ячейки на разные значения – Gridview
Мне нужно выделить две последовательные ячейки.
Каждый из них в строке, если они имеют разные значения, когда databindind значения в gridview.
Итак, если в строке 1 у меня есть ячейка «ABC», а в строке 2 у меня есть ячейка «CBA».
- Редактирование строки Gridview - динамическое связывание с DropDownList
- Как получить значение ячейки по имени столбца не по индексу в GridView в asp.net
- Создать миниатюру
- Сетка изображений внутри ScrollView
- Как найти элемент управления в TemplateField GridView?
Мне нужно покрасить каждую ячейку другого цвета.
Каков наилучший способ сделать это?
- Сброс позиции прокрутки после обратной пересылки Async - ASP.NET
- Пейджинговые и сортировочные сетки с ASP.Net MVC
- Лучший способ сделать сортировку WPF ListView / GridView при нажатии на заголовок столбца?
- добавление текстового интерфейса для перетаскивания - Android / Java
- как найти элемент управления в шаблоне редактирования элемента?
- Получить индекс Row в событии Rowcommand от Asp.net
- Android gridview сохраняет выбранный элемент
- GridView с двумя столбцами, шириной заливки
вы можете сделать это в событии 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"); } }