我有一个像this one的网格。该小部件的默认行为是在单击标题时对列进行排序。我想禁用它,而只在上下文菜单中保留选项。
grid.addHeaderClickHandler(new HeaderClickHandler() {
@Override
public void onHeaderClick(HeaderClickEvent event) {
event.getEvent().cancelBubble(true);
event.getEvent().preventDefault();
event.getEvent().stopPropagation();
Window.alert("Event caught");
}
});
警报在排序之前显示。但是,当单击
Ok
时,将启动默认行为。您对如何做到这一点有何建议?
最佳答案
可能有效的解决方案是使用NativePreviewHandler,类似于
Event.addNativePreviewHandler(new NativePreviewHandler()
{
@Override
public void onPreviewNativeEvent(final NativePreviewEvent event)
{
if (event.getTypeInt() == Event.ONCLICK)
{
Element targetElement = Element.as(event.getNativeEvent().getEventTarget());
if (!tableHeader.asWidget().getElement().isOrHasChild(targetElement))
{
event.getNativeEvent().stopPropagation();
}
}
}
});