【问题标题】:GWT CellTable CheckboxCell Not working in IE8GWT CellTable CheckboxCell 在 IE8 中不起作用
【发布时间】:2012-07-24 20:37:12
【问题描述】:

我有一个带有 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() 是一种反转布尔字段的方法,即从真到假,从假到真。

我正在使用此代码查找是否选中了任何复选框来识别任何行。

这个东西在除 IE 8 之外的所有主流浏览器中都运行良好。

在 IE 8 中,我将 object.isSelected() 设为 true,但当我单击该面板上的按钮删除行时,它显示同一行的 isSelected() false。

任何机构都可以帮我解决我应该在哪里找到问题吗?为什么 IE 的行为不同?

哪位 Java/GWT 专家可以帮帮我...

谢谢。

【问题讨论】:

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


    【解决方案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());
             }
        }
    
    );
    

    【讨论】:

    • 嘿,谢谢你的回答......但我已经完成了这个项目。仍然因为你是唯一一个回答,所以我接受它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多