我有一个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解雇? 实际上我的主要问题是如何在datagrid中为每个单元设置磁贴?你还有其他选择。 请回复。
答案 0 :(得分:-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();