GWT-在FlexTable的行上实现ClickHandler事件
因此,我的软件显示一个flextable(从数据库抓取并显示数据),用户可以点击复选框选择数据GWT-在FlexTable的行上实现ClickHandler事件,gwt,flextable,Gwt,Flextable,因此,我的软件显示一个flextable(从数据库抓取并显示数据),用户可以点击复选框选择数据 //users is the flextable object. userCheck = new ClickHandler() { public void onClick(ClickEvent event) { CheckBox src = (CheckBox) event.getSource(); for (int i = 1, n =
//users is the flextable object.
userCheck = new ClickHandler() {
public void onClick(ClickEvent event) {
CheckBox src = (CheckBox) event.getSource();
for (int i = 1, n = users.getRowCount(); i < n; i++) {
CheckBox box = (CheckBox) users.getWidget(i, 0);
if (!box.equals(src)) {
box.setValue(false, false);
}
}
removeUserButton.setEnabled(src.getValue());
editUserButton.setEnabled(src.getValue());
}
};
非常感谢 如果将
userRowCheck
添加到FlexTable:myFlexTable.addClickHandler(userRowCheck)代码>它应该可以工作。只要确保您测试src
是否为null
,因为如果您没有将小部件放入单元格中,用户单击该单元格,它将返回null
谢谢,我尝试了用户。addClickHandler(userRowCheck);但如果我添加了这一点,当我试图打开flextable时,程序会冻结。。。。。有什么想法吗?不确定“打开”(添加数据?或单击?)是什么意思,但这可能取决于浏览器,FlexTable在某些浏览器(即IE)上速度较慢。您可以尝试使用网格来检查它是否确实是FlexTable速度。
userRowCheck = new ClickHandler() {
public void onClick(ClickEvent event) {
Cell src = users.getCellForEvent(event);
int rowIndex = src.getRowIndex();
System.out.println("Cell Selected: userRowCheck Handler, rowIndex: " + rowIndex);
//This is just to check if this method is even called out. And well, it doesn't.
}
};