GWT CellTable - установить ширину столбца - PullRequest
17 голосов
/ 16 декабря 2010

Можно ли установить ширину столбца CellTable в GWT?

Ответы [ 4 ]

26 голосов
/ 17 декабря 2010

РЕДАКТИРОВАТЬ: Начиная с GWT 2.2 поддерживаются table.setWidth и table.setColumnWidth

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

Я смог расширить CellTable с помощью метода, который устанавливает ширину программно.Это что-то вроде хака, поскольку все реальные методы, которые должны это делать, являются частными для CellTable, и похоже, что GWT должен предоставить этот метод напрямую, но, похоже, он работает.

public void setColumnWidths(List<Integer> widths)
{
    TableElement tel = TableElement.as(getElement());
    NodeList<Element> colgroups = tel.getElementsByTagName("colgroup");
    if (colgroups.getLength() == 1)
    {
       TableColElement cge = TableColElement.as(colgroups.getItem(0));
       NodeList<Element> cols = cge.getElementsByTagName("col");
       for (int j = 0; j < widths.size(); j++)
       {
           TableColElement column = null;
           if (cols.getLength() > j)
           {
               column = TableColElement.as(cols.getItem(j));
           }
           else
           {
               column = cge.appendChild(Document.get().createColElement());
           }

           column.setWidth(widths.get(j)+"px");

       }

    }
}
5 голосов
/ 16 декабря 2010

Вы можете использовать имя стилена для определенного столбца, используя метод addColumnStyleName(int index, java.lang.String styleName).

Javadoc для CellTable

1 голос
/ 07 декабря 2016

Что сработало для меня, так это добавление нового класса в мой css. Этот класс применяется только для выбора элементов, длина которых варьируется в зависимости от данных.

.__gwt_cell select{
    width:170px;
}

Затем примените его к моему конкретному стилю ячейки, например o:

table.getColumn(3).setCellStyleNames("yourstyle");
0 голосов
/ 14 января 2014

Документация GWT для CellTable покрывает это, см .: http://www.gwtproject.org/doc/latest/DevGuideUiCellTable.html

В разделе «Управление шириной столбцов».

...