GWT-Textcell 未触发 onclick 事件
我正在尝试从文本单元格捕获 onclick 事件。为什么这不触发点击事件 -
TextCell tempCell = new TextCell() {
@Override
public void onBrowserEvent(Cell.Context context, Element parent, String value,
NativeEvent event, ValueUpdater<String> valueUpdater) {
if ("click".equals(event.getType())) {
Window.alert("Clicked me from cell");
}
}
};
Column<Contact, String> tempColumn = new Column<Contact, String>(tempCell) {
@Override
public String getValue(Contact object) {
return object.address;
}
};
table.addColumn(tempColumn, "Address");
I am trying to capture the onclick event from a textcell. why does not this fire the click event -
TextCell tempCell = new TextCell() {
@Override
public void onBrowserEvent(Cell.Context context, Element parent, String value,
NativeEvent event, ValueUpdater<String> valueUpdater) {
if ("click".equals(event.getType())) {
Window.alert("Clicked me from cell");
}
}
};
Column<Contact, String> tempColumn = new Column<Contact, String>(tempCell) {
@Override
public String getValue(Contact object) {
return object.address;
}
};
table.addColumn(tempColumn, "Address");
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我相信 GWT 事件是枚举,例如 Event.ONCLICK。
因此,要解决此问题,请尝试直接使用 Event.ONCLICK.toString() 并查看事件是否触发。
一般来说,请记住,代码中不要有松散的字符串,这一点很重要,因为假设事件的名称是“click”是一种非常脆弱的技术,如果发生任何更改,可能会使您的应用程序无法运行。
I believe GWT events are enums, for example, Event.ONCLICK.
So to solve, try to directly use the Event.ONCLICK.toString() and see if the event fires.
In general, rememeber its important not to have loose strings in your code because assuming that the name of the event is "click" is a very fragile technique which could render your application disfunctional if anything changes .
这将不起作用,因为 TextCell 不消耗任何事件。您必须将 AbstractSafeHtmlCell 子类化,并通过将事件传递到构造函数来告诉它您想要使用哪些事件。
这会做:
This will not work because TextCell does not consume any events. You must sub-class AbstractSafeHtmlCell instead and tell it which events you want to consume by passing them into the constructor.
This will do: