GWT CellTable CheckboxCell在IE8中不起作用

时间:2012-07-26 09:24:56

标签: java internet-explorer gwt internet-explorer-8 celltable

我正在使用带有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专家都可以帮助我......

感谢。

1 个答案:

答案 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());
         }
    }

);