How to remove a row from the Cell Table

后端 未结 3 1042
臣服心动
臣服心动 2020-12-18 08:35

At first I used the Grid. After creating a new version of the GWT, I want to replace the Grid on the CellTable.

相关标签:
3条回答
  • 2020-12-18 09:24

    Or you can just run the cycle like that

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

    Where resultsTable is a CellTable

    0 讨论(0)
  • 2020-12-18 09:25

    Check out the javadoc for details. My example is like the one you'll find there (just a little extended):

    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;
    }
    
    0 讨论(0)
  • 2020-12-18 09:31

    CellTable as part of new DataPresentationWidgets used just to display data. So you should delete according member from list of data which CellTable using to display.

    0 讨论(0)
提交回复
热议问题