我正在使用带有CheckboxCell的CellTable。
我已经添加了以下处理程序:
private static Column<AIDataRecord, Boolean> m_checkColumn =
new Column<AIDataRecord, Boolean>(new CheckboxCell(true, false))
{
@Override
public Boolean getValue(AIDataRecord object)
{
// Get the value from the selection model.
return object.isSelected();
}
@Override
public void onBrowserEvent(Context context, Element elem, AIDataRecord object, NativeEvent event)
{
System.out.println("Browser Event Called");
super.onBrowserEvent(context, elem, object, event);
String eventType = event.getType();
if ("change".equals(eventType))
{
System.out.println("Value changed");
object.toggleSelection();
System.out.println("Nw : "+object.isSelected());
}
}
};
其中object.toggleSelection()
是一个反转布尔字段的方法,即true为false,false为true。
我正在使用此代码查找是否选中了任何复选框或不识别任何行。
除了IE 8之外,所有主流浏览器都能正常运行。
在IE 8中,我得到了object.isSelected(),但是当我点击该面板上的按钮删除行时,它显示同一行的isSelected()为false。
任何人都可以帮助我,我应该在哪里找到问题?为什么IE表现不同?
任何Java / GWT专家都可以帮助我......
感谢。
答案 0 :(得分:0)
为什么不为您的列分配FieldUpdater?它简单得多。例如:
m_checkColumn.setFieldUpdater(
new FieldUpdater<AIDataRecord, Boolean>() {
@Override
public void update(int index, AIDataRecord object, Boolean value) {
object.toggleSelection();
Window.alert("Nw : " + object.isSelected());
}
}
);