2011-08-19 2 views
9

J'utilise Cell Table dans GWT. Dans cette table de cellules j'ajoute ces colonnes.Comment masquer la colonne dans la table Cell 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"); 
} 

Maintenant, j'ai quelques questions: Comment cacher la colonne id? Sur un clic de la rangée comment puis-je obtenir la ligne sélectionnée? S'il vous plaît aidez-moi. Merci d'avance.

Répondre

14

Eh bien, vous pouvez essayer d'utiliser la mise en page fixe pour le CellTable et définir la largeur de la colonne spécifique que vous voulez cacher à 0px. J'ai utilisé une autre approche.

Dans mon cas, j'ai un cellTable qui devrait afficher une colonne de case à cocher dès que j'appuie sur un bouton (qui met la table de cellule en mode d'édition). Je le fais en créant une CheckBoxColumn et en l'insérant et en l'enlevant quand j'appuie sur le bouton. Il semble seomething comme ça:

@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); 
} 

Notez toutefois que vous pouvez exécuter dans ce issue sur Google Chrome.

+0

Comment gérer le problème de l'ordre des colonnes lors de l'insertion, supprimer les colonnes multiples, veuillez lire cette question http://stackoverflow.com/questions/21630708/how-to-fix-the-column-ordering-issue-when- insérer-et-supprimer-colonnes-en-gwt – Kiti