我有一个flextable,可以填充数据库中的数据。
我想获得点击行的行号。
到目前为止,我只弄清楚如何获取特定行中特定单元格的值。你必须知道它的位置和硬编码是不切实际的。
String test =flexTable.getFlexCellFormatter().getElement(2, 2).getInnerHTML();
System.out.println(test);
如何创建ClickHandler以获取所选行?
答案 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
支持行跨度和列跨度,允许您以各种方式布局数据。我认为如果只显示单个列数据,您应该使用CellTable
或DataGrid
或者甚至是CellList
。对于这些小部件,您可以添加selectionhandler
来实现目标。请参考this它有一些预先编码的示例。