当我添加监听器column.addListener(Events.CellClick, new Listener<BaseEvent>()
时,它在列上不起作用。但是,如果我将侦听器添加到Grid。它的作品。如何在用户点击列时触发事件?
答案 0 :(得分:0)
好的,我明白你想要什么。您可以从网格eventHandler中触发列事件,如下所示:
grid.addListener(Events.CellClick, new Listener<GridEvent<ModelData>>() {
@Override
public void handleEvent(@NotNull GridEvent<ModelData> ge) {
ge.getGrid().getColumnModel().getColumn(ge.getColIndex()).fireEvent(Events.ColumnClick);
}
});
然后在将列添加到网格ColumnModel之前,您应该在其上添加Listener:
final ColumnConfig column = new ColumnConfig();
column.addListener(Events.ColumnClick, new Listener<BaseEvent>() {
@Override
public void handleEvent(@NotNull BaseEvent be) {
GWT.log("I was clicked!!!");
}
});
我不知道有没有更好的方法来做到这一点。