SmartGWT LiveGrid не может программно применить стиль к записям сетки - PullRequest
0 голосов
/ 06 февраля 2012

Я использую SmartGWT 2.5, в частности ListGrid, поддерживаемый RESTDataSource.Интеграция с сервером достигается с помощью сервлета, и мне нужно только реализовать fetchData ().Данные List<Map<String, Object>> заполняются на стороне сервера, преобразуются в JSON и отправляются в DSResponse.Динамическая сетка, поддерживаемая источником данных, запускает программную выборку сервера с помощью grid.fetchData ().

Требование: я хочу установить базовый стиль записи (или пользовательский стиль) на основе значения одного из атрибутов записи, которые я отправляю с сервера.Чтобы сделать это, я попробовал DataArrivedHandler, где я перебираю доступные строки, получаю ListGridRecord из сетки, используя номер строки, и использую gridRecord.set_baseStyle (String stylename) или gridRecord.setCustomStyle (String stylename), чтобы попробоватьи примените затененный CSS для этой записи.После этого я вызываю grid.markForRedraw (), но безрезультатно.CSS не применяется.

Я должен упомянуть, что я использовал тот же самый CSS, чтобы затенять строки в обычной listGrid (без dataSource) очень успешно.

Вопросы: моя стратегияправильный?Есть ли альтернативный способ применить стиль к записи на основе значения атрибута.

1 Ответ

0 голосов
/ 06 февраля 2012

Ваша стратегия верна, и я успешно выполнил требуемую функциональность в моем коде. Убедитесь, что вы правильно получаете запись и что в ней присутствует атрибут test. Я предлагаю JSON.encode (record.getJsObj ()), чтобы увидеть, чем на самом деле заполнена ваша запись. Нет необходимости в явном вызове markForRedraw (), так как после запуска DataArrivedEvent ListGrid перерисовывает свое представление. Опубликовать небольшой фрагмент кода, если вам нужна дополнительная помощь. Также, как следует из комментария Алена, основные моменты могут быть еще одним хорошим вариантом для рассмотрения.

...