GWT CellTable#setColumnWidth() не работает, если в ячейке есть длинный текст

Из этой ссылки автор предложил:

table.setWidth("100%", true);
table.setColumnWidth(nameColumn, 35.0, Unit.PCT);
table.setColumnWidth(addressColumn, 65.0, Unit.PCT);

чтобы ширина столбца CellTable работала, однако в моем проекте nameColumn содержит очень длинный текст, тогда этот столбец будет занимать почти все представление браузера, очевидно, ширина столбца не работает. Может ли кто-нибудь пролить свет на это?

nameColumn определено, как показано ниже:

        TextColumn<Person> nameColumn = new TextColumn<Person>()
        {

            @Override
            public String getValue( Person object )
            {
                return object.getUserName();
            }
        };

person Mike    schedule 21.06.2012    source источник


Ответы (1)


Вы можете использовать следующий метод для установки пользовательского стиля в ячейке столбца:

nameColumn.setCellStyleNames("name-cell");

Для ячейки генерируется следующая структура (в DOM):

<td class="xxxxxxxx xxxxxx name-cell">
   <div style="outline:none;">Very long name ...</div>
</td>

Таким образом, вы должны определить следующие классы css, чтобы установить желаемый стиль и ограничить размер ячейки и текста:

.name-cell {
...
}

.name-cell div {
...
}

Обновить

Я протестировал метод table.setColumnWidth( и у меня он хорошо работает. Вот как я это делаю:

  • Таблица, созданная с помощью связывателя пользовательского интерфейса

  • Создать столбцы

  • Установить ширину таблицы

  • добавить столбцы в таблицу

  • установить ширину столбца (с table.setColumnWidth )

Когда вы вычисляете ширину ячейки, не забудьте принять во внимание отступы.

Б/у GWT 2.4

person Goran Nastov    schedule 21.06.2012
comment
Спасибо за ваш ответ, ваш способ работает, но знаете ли вы, почему метод: table.setColumnWidth(nameColumn, 35.0, Unit.PCT); не работает? - person Mike; 22.06.2012
comment
Спасибо! Ваши шаги верны, но еще одна вещь, мы должны установить table.setWidth(100%, true); сначала перевести таблицу в режим фиксированной ширины. см. здесь: ссылка - person Mike; 30.06.2012