2016-12-05 3 views
0

Мой ASPxGridView загружает массивные данные из базы данных. Каждый раз, когда на сетке возникает новая загрузка данных, я бы каждый цвет Cellstyle отображал BackColor в соответствии с ресурсом из базы данных.Как изменить цвет ячейки сетки на основе элемента ячейки в DevExpress

Постараюсь уточнить я хочу добиться здесь ниже:

Это то, что я пытался. Работает, но все остальные строки остаются System.Drawing.Color.Red.Это я не хочу видеть.

protected void ASPxGridViewTicketList_CustomUnboundColumnData(object sender, DevExpress.Web.ASPxGridViewColumnDataEventArgs e) 
    { 

     if (e.Column.Caption == "Status") 
     { 

      Object is_priority = e.GetListSourceFieldValue("ispriority"); 

      if (is_priority.ToString() == "1") 
      { 
       e.Column.CellStyle.BackColor = System.Drawing.Color.Red; 

      } 
      else 
      { 
       e.Column.CellStyle.BackColor = System.Drawing.Color.AliceBlue; 

      } 


     } 

    } 

У вас есть решение для этого? Спасибо!

Вот иллюстрация:

  1. Я хотел бы, чтобы остановить охлаждение цвета снова и снова, пока существует условие, что если состояние == 1, то RED еще белый. На этой иллюстрации есть только 1 строка, которая должна быть RED, а остальные останутся белыми. Но это не работает.

enter image description here

+0

Пожалуйста, вставьте скриншот фактической сетки и отметьте новые строки, которые вы хотите отобразили с другим цветом фона. – andrews

+0

Хорошо, я добавлю его в свой quetion. –

ответ

1

Я думаю, что вы пытаетесь изменить BackColor в неправильном месте. CustomUnboundColumnData - это больше событий, связанных с данными. Когда вы звоните

e.Column.CellStyle.BackColor = System.Drawing.Color.Red; 

во CustomUnboundColumnData он отодвигает цвет для всего столбца, то есть все клетки состояния.

Чтобы установить цвет фона для конкретной несвязанной ячейки, вам необходимо обработать событие «paint» для конкретной ячейки, например HtmlDataCellPrepared, или событие, соответствующее строке, например HtmlRowCreated.

Для примера HtmlDataCellPrepared см. Это сообщение: https://www.devexpress.com/Support/Center/Question/Details/Q308988. Пример должен быть простым. Вы проверяете нужный столбец на e.DataColumn.FieldName и нужное значение столбца в e.CellValue, тогда вы можете определить, рисовать ли красную строку или нет.

Я надеюсь, что вы сможете добавлять обработчики к указанным событиям самостоятельно.

НТН

+0

Спасибо за ваш четкий ответ, я попробую сейчас поблагодарить. –

+0

Большое спасибо, я потратил время, чтобы посмотреть на правильный ответ. Своим руководителем @andrews мне удается получить точный ответ. Я должен использовать 'protected void ASPxGridViewTicket_HtmlDataCellPrepared (отправитель объекта, ASPxGridViewTableDataCellEventArgs e)' Метод, чтобы получить правильный цвет. –

+0

@ MichealP. пожалуйста! Я рад, что вы его разрешили;). – andrews

Смежные вопросы