显示GWT CellTable中每行的编辑/删除按钮?

时间:2014-03-20 10:52:41

标签: java gwt celltable

我有一个显示一些数据的单元格表。对于每一行,我想要有两列包含编辑/删除按钮。单击每个按钮时,它应该能够通知监听器单击了哪个按钮(并且最好还能够传入与该行关联的对象)。

我该怎么做?具体来说,我知道如何渲染按钮,但是如何处理点击事件并传入用户点击编辑或删除的对象?

2 个答案:

答案 0 :(得分:1)

这是标准方法:

myTable.addCellPreviewHandler(new Handler<MyObject>() {

    @Override
    public void onCellPreview(CellPreviewEvent<MyObject> event) {
        if ("click".equals(event.getNativeEvent().getType())) {
            if (event.getColumn() == 0 || event.getColumn() == 1) {
                MyObject object = event.getValue();
                Window.alert("Column clicked: " + event.getColumn());
            }
        }
    }

});

这是一个更有效的解决方案,因为您只有一个处理程序附加到表,而不是尝试将处理程序附加到每行中的每个按钮。

答案 1 :(得分:0)

我认为你可以通过细胞表中的所有行进行预测(我从未使用过celltable) 然后,您可以将自己的ClickHandler添加到Button。 这样的事情(未经测试):

final int row = myrow; // add the row value or a object identifier or similar 
Button delete_button = new Button("delete");
    delete_button.addClickHandler(new ClickHandler(){
    @Override
    public void onClick(ClickEvent event) {
        // Insert your delete funciton
        delete(row);
   }
});

您提到了一个Listener,Listener被折旧,而是使用Handler。