0
  • 我创建了一个新的 CellTable。
  • 覆盖 onBrowserEvent2 以处理鼠标事件。
  • 向表中添加一个新元素。

可悲的是,事件侦听器没有处理添加的元素。它仅适用于初始元素。

table = new CellTable<Contact>() {

    public void onBrowserEvent2(Event event) {
    Element tr = Element.as(event.getEventTarget());

    boolean gotIt = false;
    while (!gotIt && tr != null) {
        if (!tr.getTagName().equals("TR")) {
        tr = tr.getParentElement();
        continue;
        }
        gotIt = true;
    }

    if (tr == null)
        return;

    tr = Element.as(tr.getChild(1));

    Element out = DOM.createDiv();
    out.setInnerHTML("<a href='xxx'>Edit contact</a> | <a href='xxx'>Add visit plan</a> | <a href='xxx'>New visit</a>");

    switch (DOM.eventGetType(event)) {
    case Event.ONMOUSEOVER:
       tr.appendChild(out);
        break;
    case Event.ONMOUSEOUT:
       tr.getChild(1).removeFromParent();
        break;
    }
    }
};
4

1 回答 1

0

如果您对它没问题,您可以单独声明所有处理程序。

您始终可以像这样直接添加鼠标处理程序:

//描述 MouseOverHandler 的代码。将此用于任何类型的 GWT 事件处理程序

            CellTable<String> cellTable = new CellTable<String>();

            cellTable.addDomHandler(new MouseOverHandler() {

                @Override
                public void onMouseOver(MouseOverEvent event) {
                    // Your logic
                }
            }, MouseOverEvent.getType());

那应该有帮助

于 2012-08-09T15:10:32.997 回答