2012-01-17 3 views
2

Мне нужно добавить новый стиль для некоторых строк DataGrid, в зависимости от переменной.Как добавить определенный стиль в GWT DataGrid

Например:

table.setRowStyles(new RowStyles<Entry>() { 
    @Override 
    public String getStyleNames(Entry entry, int rowIndex) { 
     return entry.isStyle() ? "newStyle" : null; 
    } 
}); 

"Newstyle" является глобальным стиль CSS.

Проблема заключается в том, что стиль не применяется к строкам, пока я не добавлю !important в определение css. Но с !important я потерял все стили DataGrid по умолчанию и имею только «newStyle».

UPDATE: CSS файл

.newStyle { 
    color : lightgray; 
} 
+2

Пожалуйста, добавьте ваш css здесь! Кажется, плохая практика использовать '! Important'. См. [Что такое важное значение в CSS?] (Http://webdesign.about.com/od/css/f/blcssfaqimportn.htm) Также см. [Стиль gwt-style-style-overrides-my-css-style ] (http://stackoverflow.com/questions/2322779/gwt-theme-style-overrides-my-css-style). Это может быть полезно. – MockerTim

ответ

1

См this previous question для рабочего раствора. Скопировано для удобства:

Короче удлинить DataGrid.Style (цель только иметь новый тип, вы не должны ничего добавлять к нему), и ваш dataGridStyle переопределяется метод вернуть свой подтип, а чем DataGrid.Style (и он будет работать из-за возвращения типа ковариации)

+0

Я видел этот ответ, но в этом случае, когда я использую инъекции ресурсов, мне нужно переопределить каждый стиль. – mishadoff

+0

решается путем использования newStyle извне – mishadoff

1

Изменить определение Newstyle в файле CSS. Обычно лучше сделать селектор CSS более конкретным, чем использовать !important. Попробуйте комбинировать имена CSS по умолчанию DataGrid с вашими. Например: dataGridHeader.newStyle {}

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