2011-08-19 5 views
9

Sto usando Tabella celle in GWT. In quella tabella celle sto aggiungendo queste colonne.Come nascondere la colonna nella tabella delle celle GWT?

TextColumn<Document> idColumn = new TextColumn<Document>() { 
     @Override 
     public String getValue(Document object) { 
      return Long.toString(object.getId()); 
     } 
    }; 
    TextColumn<Document> refColumn = new TextColumn<Document>() { 
     @Override 
     public String getValue(Document object) { 
      return object.getReferenceNumber(); 
     } 
    }; 
    /* 
    * DateCell dateCell = new DateCell(); Column<Contact, Date> dateColumn 
    * = new Column<Contact, Date>(dateCell) { 
    * 
    * @Override public Date getValue(Contact object) { return 
    * object.birthday; } }; 
    */ 
    TextColumn<Document> nameColumn = new TextColumn<Document>() { 
     @Override 
     public String getValue(Document object) { 
      return object.getDocumentName(); 
     } 
    }; 
      table = new CellTable<T>(); 
    table.addColumn(idColumn, "Id"); 
    table.addColumn(refColumn, "Reference Number"); 
    table.addColumn(nameColumn, "Name"); 
} 

ora ho alcune domande: Come nascondere la colonna id? Al clic di fila come posso ottenere dalla riga selezionata? Per favore aiutatemi. Grazie in anticipo.

risposta

14

Bene, potresti provare a utilizzare il layout fisso per CellTable e impostare la larghezza della colonna specifica che desideri nascondere a 0px. Ho usato un altro approccio.

Nel mio caso, ho una cellaTabella che dovrebbe visualizzare una colonna di caselle di controllo non appena premo un pulsante (che mette il cellulare in modalità di modifica). Lo faccio creando una colonna CheckBox e inserendola e rimuovendola quando premo il pulsante. Sembra seomething così:

@Override 
public void insertCheckBoxColumn(Column<Object,Boolean> column) { 
    if (cellTable.getColumnIndex(column) == -1) { 
     cellTable.addColumn(column,""); 
     cellTable.setColumnWidth(column,50, Unit.PX); 
    } 
} 

@Override 
public void removeCheckBoxColumn(Column<Object, Boolean> column) { 
    int index = cellTable.getColumnIndex(column); 
    if (index != -1) 
     cellTable.removeColumn(index); 
} 

Tuttavia notare che si potrebbe incorrere in questo issue su Google Chrome.

+0

Come si gestisce il problema di ordinamento delle colonne quando si inserisce, rimuovere le colonne di muptiple, pls leggere questa domanda http://stackoverflow.com/questions/21630708/how-to-fix-the-column-ordering-issue-when- inserire e colonne-in-gwt-remove- – Kiti