如何获取行,列在gwt表中单击

时间:2014-01-14 20:17:52

标签: gwt

我有一个flextable,可以填充数据库中的数据。

我想获得点击行的行号。

到目前为止,我只弄清楚如何获取特定行中特定单元格的值。你必须知道它的位置和硬编码是不切实际的。

 String test =flexTable.getFlexCellFormatter().getElement(2, 2).getInnerHTML();
 System.out.println(test);

如何创建ClickHandler以获取所选行?

2 个答案:

答案 0 :(得分:2)

我找到了一个解决方案,我会发布给任何偶然发现这个问题的人

//flexTable is a FlexTable object. Add a ClickHandler to it.
flexTable.addClickHandler(new ClickHandler() {
    public void onClick(ClickEvent event) {            
            //gets the index of the cell you clicked on
            int cellIndex = flexTable.getCellForEvent(event).getCellIndex();
            //gets the index of the row you clicked on
            int rowIndex = flexTable.getCellForEvent(event).getRowIndex();
            //print statements below will verify 
            System.out.println("cellIndex "+cellIndex);
            System.out.println("rowIndex "+rowIndex);
            //gets the value of the selected cell
            String test =flexTable.getFlexCellFormatter().getElement(rowIndex,cellIndex ).getInnerHTML();
            System.out.println(test);

        }
    });

答案 1 :(得分:0)

FlexTable支持行跨度和列跨度,允许您以各种方式布局数据。我认为如果只显示单个列数据,您应该使用CellTableDataGrid或者甚至是CellList。对于这些小部件,您可以添加selectionhandler来实现目标。请参考this它有一些预先编码的示例。