1

我有一个 GWT CellList。每个单元格有一个图像、两个标签和一个按钮。

每当用户单击单元格时,就会发生 onSelected 事件。

如果用户单击一个按钮,我想触发 onClick 事件,如果单击其他区域(不是内部按钮),我想触发 onSelected。

有可能这样做吗?

4

2 回答 2

1

onBrowserEvent(...)最简单的方法是覆盖AbstractCell<C>. 这是我如何实现它来处理<a/>元素上的点击事件:

@Override
public void onBrowserEvent(Context context, Element parent, BIBonusDto value, NativeEvent event,
        ValueUpdater<BIBonusDto> valueUpdater) {
    super.onBrowserEvent(context, parent, value, event, valueUpdater);
    if ("click".equals(event.getType())) {
        EventTarget eventTarget = event.getEventTarget();
        if (!Element.is(eventTarget)) {
            return;
        }
        if (parent.getElementsByTagName("a").getItem(0).isOrHasChild(Element.as(eventTarget))) {
            if (valueUpdater != null)
                valueUpdater.update(value);
        }
    }
}

单元格模板如下所示:

<div id='info' class='campaign' style='cursor:default;'>
  <div id='claim-inner2'>
    <a id='claim-inner1' style='cursor:pointer;'>
      <div id='claim-inner' title='Claim Points Now'></div>
    </a>
  </div>
</div>

我们必须检查事件的类型是否正确以及它是否是一个元素,然后我们可以检查它是否正确并将操作委托给值更新器回调。

于 2012-06-13T13:48:49.267 回答
0

我想你想要这样的东西, http://gwt.google.com/samples/Showcase/Showcase.html#! CwCellSampler

您可以使用 ActionCell 或 ButtonCell。

让我知道这是否符合您的目的。

于 2012-05-04T09:51:10.717 回答