11

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/>");

しかし、記載されているようにハンドラーを挿入する方法がわかりませんでした。

どんな提案でも大歓迎です

ありがとう。

4

3 に答える 3

17

セルは、処理するイベントを宣言する必要があります。そうすれば、ブラウザイベントをセルに渡すことができます。

    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で機能しますが、GWT2.2では機能しませんでした。

于 2011-12-27T17:12:25.553 に答える
2

GWTのCellTableの行にclickHandlerを追加するのを見たことがありますか??

于 2011-05-31T07:57:31.277 に答える