Изменение цвета ячейки на разные значения – Gridview
Мне нужно выделить две последовательные ячейки.
Каждый из них в строке, если они имеют разные значения, когда databindind значения в gridview.
Итак, если в строке 1 у меня есть ячейка «ABC», а в строке 2 у меня есть ячейка «CBA».
- Получить значения DataKey в GridView RowCommand
- Экспорт GridView в несколько листов Excel
- Условно скрыть CommandField или ButtonField в Gridview
- Как реализовать Yii2 Modal Dialog на кнопке просмотра и обновления Gridview?
- Lazy загружает изображения в gridView
Мне нужно покрасить каждую ячейку другого цвета.
Каков наилучший способ сделать это?
- Проблемы с GridView внутри ScrollView в android
- Преобразование DBContext в ObjectContext для использования с GridView
- Лучший способ сделать сортировку WPF ListView / GridView при нажатии на заголовок столбца?
- Сортировка GridView: SortDirection всегда по возрастанию
- Высота Gridview снижается
- 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"); } }