最初に私はグリッドを使用しました。 GWTの新しいバージョンを作成した後、CellTableのグリッドを置き換えたいと思います。セルテーブルから行を削除する方法
5
A
答えて
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
であること
のようなサイクルを実行することができます:私の例では、(ほんの少しの拡張)が見つけるもののようですあなたが求めていることを正確に理解していない。いくつかのコード例を提供したり、説明を拡張したりできますか? – jzd
Gridの "removeRow(int rowNum)"のようなCellTableクラスの行を削除するメソッドが見つかりません – Dasha