2010-12-03 2 views
5

最初に私はグリッドを使用しました。 GWTの新しいバージョンを作成した後、CellTableのグリッドを置き換えたいと思います。セルテーブルから行を削除する方法

+0

であること

@UiHandler("combo") public void onChange(ChangeEvent e) { textBoxes.clear(); searchFields.clear(); while(resultsTable.getColumnCount()!=0) { resultsTable.removeColumn(0); } resultsTable.redraw(); 

のようなサイクルを実行することができます:私の例では、(ほんの少しの拡張)が見つけるもののようですあなたが求めていることを正確に理解していない。いくつかのコード例を提供したり、説明を拡張したりできますか? – jzd

+0

Gridの "removeRow(int rowNum)"のようなCellTableクラスの行を削除するメソッドが見つかりません – Dasha

答えて

10

詳細については、javadocをご覧ください。

public void onModuleLoad() { 
    final CellTable<Row> table = new CellTable<Row>(); 

    TextColumn<Row> firstColumn = new TextColumn<Starter.Row>() { 

     @Override 
     public String getValue(Row object) { 
      return object.firstColumn; 
     } 
    }; 
    table.addColumn(firstColumn, "header one"); 

    TextColumn<Row> secondColumn = new TextColumn<Starter.Row>() { 

     @Override 
     public String getValue(Row object) { 
      return object.secondColumn; 
     } 
    }; 
    table.addColumn(secondColumn, "header two"); 

    TextColumn<Row> thirdColumn = new TextColumn<Starter.Row>() { 

     @Override 
     public String getValue(Row object) { 
      return object.thirdColumn; 
     } 
    }; 
    table.addColumn(thirdColumn, "header three"); 

    table.setRowCount(getList().size()); 
    final ListDataProvider<Row> dataProvider = new ListDataProvider<Starter.Row>(getList()); 
    dataProvider.addDataDisplay(table); 

    final SingleSelectionModel<Row> selectionModel = new SingleSelectionModel<Starter.Row>(); 
    table.setSelectionModel(selectionModel); 

    Button btn = new Button("delete entry"); 
    btn.addClickHandler(new ClickHandler() { 

     @Override 
     public void onClick(ClickEvent event) { 
      Row selected = selectionModel.getSelectedObject(); 
      if (selected != null) { 
       dataProvider.getList().remove(selected); 
      } 
     } 
    }); 

    RootPanel.get().add(table); 
    RootPanel.get().add(btn); 

} 

private class Row { 

    private String firstColumn; 
    private String secondColumn; 
    private String thirdColumn; 

    public Row(String firstColumn, String secondColumn, String thirdColumn) { 
     this.firstColumn = firstColumn; 
     this.secondColumn = secondColumn; 
     this.thirdColumn = thirdColumn; 
    } 

} 

private LinkedList<Row> getList() { 
    LinkedList<Row> list = new LinkedList<Row>(); 
    list.add(new Row("first", "entry", "foo")); 
    list.add(new Row("second", "entry", "foo")); 
    list.add(new Row("third", "entry", "foo")); 
    list.add(new Row("fourth", "entry", "foo")); 
    return list; 
} 
1

CellTableの一部として新しいDataPresentationWidgetsデータの表示にのみ使用されます。したがって、CellTableが表示するために使用するデータのリストからメンバーに従って削除する必要があります。

2

それとも、ただresultsTableはI CellTable

関連する問題