简体   繁体   English

GWT CellList中按钮的onClick / onSelected事件

[英]onClick/onSelected Event of a button in a GWT CellList

I have a GWT CellList. 我有一个GWT CellList。 Each Cell has one image, two label, and one button. 每个单元都有一个图像,两个标签和一个按钮。

Whenever user click a Cell, onSelected event occures. 每当用户单击单元格时,就会发生onSelected事件。

I want to fire onClick event if user click on a button, onSelected if click other area(not inside button). 如果用户单击按钮,我想触发onClick事件,如果单击其他区域(不在按钮内),则触发onSelected。

Is it possible to do that? 有可能这样做吗?

The easiest way is to override onBrowserEvent(...) method of AbstractCell<C> . 最简单的方法是重写AbstractCell<C> onBrowserEvent(...)方法。 Here is how i implemented it to deal with click events on a <a/> element: 这是我实现它以处理<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);
        }
    }
}

the cell template looks like this: 单元格模板如下所示:

<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>

We have to check if the event is of the right type and if it's an element, then we can check if it's the right one and delegate the action to a value updater callback. 我们必须检查事件的类型是否正确以及是否是元素,然后可以检查事件的类型是否正确并将事件委托给值更新程序回调。

I think you want something like this, http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellSampler 我想您想要这样的东西, http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellSampler

You can either have ActionCell or ButtonCell. 您可以具有ActionCell或ButtonCell。

Let me know if this serve your purpose or not. 让我知道这是否达到您的目的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM