2010-12-16 15 views

Odpowiedz

24

Edycja: Na GWT 2,2 table.setWidth i table.setColumnWidth są obsługiwane

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

że w stanie rozszerzyć CellTable za pomocą sposobu, który wyznacza szerokości programowo. To trochę hack, ponieważ wszystkie prawdziwe metody, które powinny to robić, są prywatne dla CellTable i wydaje się, że GWT powinno zapewnić tę metodę bezpośrednio, ale wydaje się działać.

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

Możesz użyć nazwy stylu dla konkretnej kolumny, używając metody addColumnStyleName(int index, java.lang.String styleName).

Javadoc for CellTable

+0

wiem na temat tej metody przez nie wiem, jak go używać. Gdzie należy zadeklarować taką klasę stylu? – Opal

+0

W arkuszu stylów aplikacji. Spójrz na [ClientBundle] (http://code.google.com/intl/de-DE/webtoolkit/doc/latest/DevGuideClientBundle.html) lub po prostu dołącz niestandardowy arkusz stylów. – bestform

+0

Dzięki, to działa. Chciałbym zadeklarować ten arkusz stylów w CellTable.Resource, ale dostaję wyjątek: [ERROR] Nie można przetworzyć CSS. Czy wiesz, jak to zrobić? – Opal

0

To, co zadziałało, to dodanie nowej klasy do moich css. Ta klasa zostanie zastosowana tylko do wybranych elementów, których długość zmienia się w zależności od danych.

.__gwt_cell select{ 
    width:170px; 
} 

następnie zastosowanie go na moim konkretnym stylu komórki jak O:

table.getColumn(3).setCellStyleNames("yourstyle"); 
Powiązane problemy