GWT 仅为 table 行添加双击处理程序,而不是 header
GWT add double click handler only for table rows, not header
我们通过扩展 com.google.gwt.user.client.ui.Composite
在我们的应用程序中实现了 GWT 自定义 table 小部件。此 table 上有一个双击处理程序,它会打开一个弹出窗口来编辑所选记录。
// 'table' is our implementation
final NoSelectionModel<OurCustomDTOClass> editSelectedRowModel = new NoSelectionModel<OurCustomDTOClass>();
table.getTable().setSelectionModel(editSelectedRowModel, DefaultSelectionEventManager.createBlacklistManager(0));
table.addDomHandler(new DoubleClickHandler() {
@Override
public void onDoubleClick(final DoubleClickEvent event) {
// code to open the popup to edit the record
// this popup must be opened only if the user selects the rows and NOT the header
}
}, DoubleClickEvent.getType());
仅供参考,table 被绘制为 th
(对于 table headers)和 tr
(对于 table 行)。
我们需要做的是避免用户双击 table header 时的双击操作。我搜索了 SO 和其他参考资料,但还没有成功。
如有任何有用的指点,我们将不胜感激。谢谢。
您可以尝试检查事件的目标:
Element e = Element.as(event.getNativeEvent().getEventTarget());
if (e.getTagName().toLowerCase().equals("td")) {
// do something
}
或者您可以将小部件拆分为两个单独的小部件 - 一个用于 header,另一个用于 table body。
我们通过扩展 com.google.gwt.user.client.ui.Composite
在我们的应用程序中实现了 GWT 自定义 table 小部件。此 table 上有一个双击处理程序,它会打开一个弹出窗口来编辑所选记录。
// 'table' is our implementation
final NoSelectionModel<OurCustomDTOClass> editSelectedRowModel = new NoSelectionModel<OurCustomDTOClass>();
table.getTable().setSelectionModel(editSelectedRowModel, DefaultSelectionEventManager.createBlacklistManager(0));
table.addDomHandler(new DoubleClickHandler() {
@Override
public void onDoubleClick(final DoubleClickEvent event) {
// code to open the popup to edit the record
// this popup must be opened only if the user selects the rows and NOT the header
}
}, DoubleClickEvent.getType());
仅供参考,table 被绘制为 th
(对于 table headers)和 tr
(对于 table 行)。
我们需要做的是避免用户双击 table header 时的双击操作。我搜索了 SO 和其他参考资料,但还没有成功。
如有任何有用的指点,我们将不胜感激。谢谢。
您可以尝试检查事件的目标:
Element e = Element.as(event.getNativeEvent().getEventTarget());
if (e.getTagName().toLowerCase().equals("td")) {
// do something
}
或者您可以将小部件拆分为两个单独的小部件 - 一个用于 header,另一个用于 table body。