2010-12-16 26 views

cevap

24

DÜZENLEME: GWT 2.2 itibarıyla table.setWidth ve table.setColumnWidth

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

desteklenir programlı genişlikleri ayarlayan bir yöntem ile HucreTablosu uzatmak mümkün oldu. Bunu yapması gereken tüm gerçek yöntemler CellTable'a özel olduğundan ve GWT'nin bu yöntemi doğrudan sağlaması gerektiği gibi görünüyor, ama işe yarıyor gibi görünüyor.

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) yöntemini kullanarak belirli bir sütun için stylename kullanabilirsiniz.

Javadoc for CellTable

+0

Ben nasıl kullanılacağını bilmiyorum bu yöntem hakkında biliyorum. Böyle stil sınıfı ilan edilmeli? – Opal

+0

Uygulamanızın stil sayfasında. [ClientBundle] 'a bakın (http://code.google.com/intl/de-DE/webtoolkit/doc/latest/DevGuideClientBundle.html) ya da sadece özel bir stil sayfası ekleyin. – bestform

+0

Teşekkürler, işe yarıyor. Bu stil sayfasını bir CellTable.Resource içinde bildirmek istiyorum ancak bir özel durum alıyorum: [ERROR] CSS işlenemiyor. Nasıl yapılacağını biliyor musun? – Opal

0

Benim için çalışılan şey, css'ime yeni bir sınıf ekliyor. Bu sınıf sadece uzunluğu, verilere bağlı olarak değişen elemanlara uygulanır.

.__gwt_cell select{ 
    width:170px; 
} 

Sonra o gibi benim özel hücre stilini uygulayarak:

table.getColumn(3).setCellStyleNames("yourstyle");