2010-12-16 2 views

ответ

24

EDIT: На 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"); 

     } 

    } 
} 
4

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

Javadoc for CellTable

+0

Я знаю об этом методе с помощью не знаю, как использовать его. Где должен быть объявлен класс стилей? – Opal 2010-12-16 15:40:19

0

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

.__gwt_cell select{ 
    width:170px; 
} 

Тогда, применяя его на моем конкретном стиле клеток, как O:

table.getColumn(3).setCellStyleNames("yourstyle"); 
Смежные вопросы