2010-12-16 30 views

Respuesta

24

EDIT: A partir de GWT 2.2 table.setWidth y table.setColumnWidth están soportados

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

yo era capaz de extender el CellTable con un método que establece el ancho de programación. Es un poco complicado ya que todos los métodos reales que deberían hacer esto son privados para CellTable y parece que GWT debería proporcionar este método directamente, pero parece funcionar.

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

Puede usar un nombre de estilo para la columna específica, utilizando el método addColumnStyleName(int index, java.lang.String styleName).

Javadoc for CellTable

+0

sé acerca de este método por no saber cómo usarlo. ¿Dónde debe declararse dicha clase de estilo? – Opal

+0

En la hoja de estilo de su aplicación. Eche un vistazo a [ClientBundle] (http://code.google.com/intl/de-DE/webtoolkit/doc/latest/DevGuideClientBundle.html) o simplemente incluya una hoja de estilo personalizada. – bestform

+0

Gracias, funciona. Me gustaría declarar esta hoja de estilo en un CellTable.Resource pero recibo una excepción: [ERROR] No se puede procesar el CSS. ¿Sabes cómo se puede hacer? – Opal

0

Lo que funcionó para mí es agregar una nueva clase en mi css. Esta clase se aplica solo a elementos seleccionados cuya duración varía según los datos.

.__gwt_cell select{ 
    width:170px; 
} 

luego aplicarlo en mi estilo de celda en particular, como O:

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