如何将 Clickhandler 添加到 cellTable 单元格(或行)

发布于 2024-11-10 11:10:13 字数 537 浏览 6 评论 0原文

我想在我的 cellTable 的一列上有一个处理程序。该列是一个 ImageResourceCell,我希望当我单击它时,它会删除该行 这是我的代码

Column<MyObject, ImageResource> imageColumn = 
    new Column<MyObject, ImageResource>(newImageResourceCell()) {
        @Override
        public ImageResource  getValue(MyObject object) {
             return Bundle.Util.getInstance().deleteRegexButton();
        }
    }; 
cellTable.addColumn(imageColumn,SafeHtmlUtils.fromSafeConstant("<br/>");

,但我不知道如何按照描述插入处理程序 是否可以 ??

欢迎任何建议

谢谢。

I would like to have a handler on a column of my cellTable.The column is an ImageResourceCell and I would that when I click on it, it delete the row
Here is my code

Column<MyObject, ImageResource> imageColumn = 
    new Column<MyObject, ImageResource>(newImageResourceCell()) {
        @Override
        public ImageResource  getValue(MyObject object) {
             return Bundle.Util.getInstance().deleteRegexButton();
        }
    }; 
cellTable.addColumn(imageColumn,SafeHtmlUtils.fromSafeConstant("<br/>");

But I didn't know how to insert a handler as described
Is it possible ??

any suggestions are welcome

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

司马昭之心 2024-11-17 11:10:13

单元格必须声明它们处理的事件,然后浏览器事件可以传递到单元格。

    ImageResourceCell myImgCell = new ImageResourceCell() {
        public Set<String> getConsumedEvents() {
            HashSet<String> events = new HashSet<String>();
            events.add("click");
            return events;
        }
    };

    Column<MyObject, ImageResource> imageColumn = new Column<MyObject, ImageResource>(myImgCell) {
        @Override
        public ImageResource getValue(MyObject dataObj) {
                    return Bundle.Util.getInstance().deleteRegexButton();
        }

        @Override
        public void onBrowserEvent(Context context, Element elem,
                MyObject object, NativeEvent event) {
            super.onBrowserEvent(context, elem, object, event); 
            if ("click".equals(event.getType())) {
                //call your click event handler here
            }
        }
    };

更多信息请参见:http://code.google.com/webtoolkit/doc/latest /DevGuideUiCustomCells.html

注意:这适用于 GWT 2.4,未尝试使用 GWT 2.2。

Cells have to declare the events they handle, then the browser event can be passed to the cell.

    ImageResourceCell myImgCell = new ImageResourceCell() {
        public Set<String> getConsumedEvents() {
            HashSet<String> events = new HashSet<String>();
            events.add("click");
            return events;
        }
    };

    Column<MyObject, ImageResource> imageColumn = new Column<MyObject, ImageResource>(myImgCell) {
        @Override
        public ImageResource getValue(MyObject dataObj) {
                    return Bundle.Util.getInstance().deleteRegexButton();
        }

        @Override
        public void onBrowserEvent(Context context, Element elem,
                MyObject object, NativeEvent event) {
            super.onBrowserEvent(context, elem, object, event); 
            if ("click".equals(event.getType())) {
                //call your click event handler here
            }
        }
    };

More info here: http://code.google.com/webtoolkit/doc/latest/DevGuideUiCustomCells.html

Note: this works with GWT 2.4, did not try with GWT 2.2.

树深时见影 2024-11-17 11:10:13

CellTable 内置了对处理单击事件的支持。您可以添加一个 CellPreviewHandler,当单击一行时将调用该单元。它将接收事件中的许多项目,例如本机事件、单元格和数据行值。因为它不仅会触发单击事件,所以您需要检查单击事件是否被触发。简单测试事件是否通过:

boolean isClick = "click".equals(event.getNativeEvent().getType())

A CellTable has built in support for handling click events. You can add a CellPreviewHandler that will be called among others when a row is clicked. It will receive a number of items in the event like the native event, cell, and data row value. Because it fires not only for click events you need to check if the click event was fired. Simply test the event passed:

boolean isClick = "click".equals(event.getNativeEvent().getType())
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文