GWT CellTable CheckboxCell не работает в IE8
У меня есть CellTable с CheckboxCell в нем.
Я добавил следующий обработчик:
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() true, но все же, когда я нажимаю кнопку на этой панели, чтобы удалить строку, он показывает isSelected() false для той же строки.
Может ли какой-нибудь орган помочь мне с тем, где я должен попытаться найти проблему? Почему IE ведет себя по-разному??
Может любой эксперт по Java/GWT, пожалуйста, помогите мне...
Благодарю.
1 ответ
Почему бы вам не назначить 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());
}
}
);