我有一个GWT CellList。每个Cell都有一个图像,两个标签和一个按钮。
每当用户单击一个单元格时,就会发生onSelected事件。
如果用户点击按钮,我想触发onClick事件, onSelected如果单击其他区域(不在按钮内)。
有可能吗?
答案 0 :(得分:1)
最简单的方法是覆盖onBrowserEvent(...)
的{{1}}方法。以下是我如何实现它来处理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);
}
}
}
我们必须检查事件是否是正确的类型,如果它是一个元素,那么我们可以检查它是否是正确的,并将操作委托给值更新程序回调。
答案 1 :(得分:0)
我想你想要这样的东西, http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellSampler
您可以拥有ActionCell或ButtonCell。
请告诉我这是否符合您的目的。