【问题标题】:GWT - implement ClickHandler event on a row of a FlexTableGWT - 在 FlexTable 的一行上实现 ClickHandler 事件
【发布时间】:2011-07-20 19:03:12
【问题描述】:

所以我的软件正在显示一个弹性表(数据是从数据库中抓取和显示的),用户允许点击一个复选框来选择一个数据。

//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 = 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.
        }
    };

非常感谢!!!!

【问题讨论】:

    标签: gwt flextable


    【解决方案1】:

    如果您将 userRowCheck 添加到 FlexTable :myFlexTable.addClickHandler(userRowCheck); 它应该可以工作。只需确保您测试src 是否为null,因为如果您没有将小部件放在单元格中并且用户单击该单元格,它将返回null

    【讨论】:

    • 谢谢,我试过 users.addClickHandler(userRowCheck);但如果我确实添加了它,当我尝试打开 flextable 时程序会冻结.....有什么想法吗?
    • 不确定“打开”是什么意思(添加数据?还是单击?),但这可能取决于浏览器,众所周知,FlexTable 在某些浏览器(即 IE)上速度很慢。您可以尝试使用 Grid 来检查它是否确实是 FlexTable 速度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多