1

我有一个 Datagrid,我需要在工具提示中显示每个单元格的值。

如果我使用的是 celltable,那么我可以通过以下方式轻松设置每个单元格的标题。

cellTable.addCellPreviewHandler(new Handler<GWTEvent>() {
  @Override
  public void onCellPreview(CellPreviewEvent<GWTEvent> event) {
    if ("click".equals(event.getNativeEvent().getType())) {
    GWTEvent data1 = event.getValue();
    fireEvent(new ClassicViewWidgetClickEvent(eventsList.get(i).getMessageId()));
    }
    if ("mouseover".equals(event.getNativeEvent().getType())) {
      Element cellElement = event.getNativeEvent().getEventTarget().cast();
      cellElement.setTitle("Bod Message");
    }
  }
}

如果我为 Datagrid 编写了相同的逻辑,它只适用于点击事件。mouseover事件未触发。为什么它不为 Datagrid 开火?实际上我的主要问题是如何为数据网格中的每个单元格设置图块?你还有其他选择吗?请回复。

4

1 回答 1

-2

对于工具提示,创建一个内部类:

public class MyTooltip extends PopupPanel {
    /**
     * @param html
     *            is to pass tip information.
     */
    @Inject
    public MyTooltip(final HTMLPanel html) {
        super(true);
        setWidget(html);
    }
}

并在鼠标悬停/单击单元格时执行以下操作,

    final HTMLPanel html = new HTMLPanel("");
    html.getElement().setAttribute("style","padding: 10px;"); // set some style
    html.add(new Label("hello!")); // add widgets
    MyTooltip tooltip = new MyTooltip();
    tooltip.setWidget(html);
tooltip.setPopupPosition(event.getClientX() + 10,event.getClientY() + 10);
    tooltip.show();
于 2013-06-27T14:06:16.483 回答