2010-11-16 3 views

ответ

26

Создание интерфейса:

interface TableResources extends CellTable.Resources { 
    @Source({CellTable.Style.DEFAULT_CSS, "<your css file>.css"}) 
    TableStyle cellTableStyle(); 
    } 

    interface TableStyle extends CellTable.Style { 
    } 

и инициализировать ячейки таблицы:

CellTable.Resources resources = GWT.create(TableResources.class); 
    table = new CellTable<SomeProxy>(rowSize, resources); 

В пакете cellview.client вы можете найти CSS-файлы по умолчанию GWT. Используйте их как отправную точку. В "<your css file>.css" вы можете указать конкретные изменения стиля.

Вы также можете установить Колум стиль (на элемент COL):

table.addColumnStyleName(colNumer, "some_css_style_name"); 

или лучше использовать CSS имя ресурса вместо строки "some_css_style_name".

+0

Как использовать CellTable.Resources и CellTable вместе с UiBinder? Я не могу заставить мою таблицу строить (rowSize, resouces). Я комментирую ее с помощью UiField, и это не работает. – rapadura

+2

Используйте '@UiField (при условии = true)' с помощью CellTable. Таким образом, UiBinder знает, что вы создаете таблицу в коде. –

2

Просто для удовольствия я мог бы добавить что-то, у меня просто была головная боль ... если вы измените cellTableStyle(); с чем-то другим он ломается ... никаких предупреждений или ошибок, CSS просто не появляется, как я думал. Не знаю, где это задокументировано, но я обнаружил это после многозначного поиска, пытаясь выяснить, почему некоторые CSS были правильными, а некоторые нет.

1

Я использовал вышеприведенное решение, однако, если у вас есть другая таблица с по умолчанию, он заканчивается созданием вашей пользовательской таблицы. Вам нужно переопределить все ваши таблицы с помощью специального стиля, или есть ли способ обхода?

Кроме того, я считаю, что конструкторы CellTable менее оптимальны ... Я должен указать pageSize, чтобы указать ресурс стиля CellTable (pageSize, resources) ... Я помещал Integer.MAX_VALUE для pageSize, не уверен, что это должно быть -1 или что-то еще, так как в этом значении нет javadoc.

2

По какой-то причине мой cellTable.addColumnStyleName (colNumber, "cssStyle") просто не будет работать. Согласно FireBug, он не добавляет стиль независимо от того, что (если стиль был неправильным, он, по крайней мере, мог бы добавить его в атрибут классов th-element ...). Возможно, это потому, что я перерисовываю столбцы, но это странно.

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