我在使用GWT列表框时遇到问题。我有一种情况,用户从listBox中选择一个值,但如果他们更改相关字段中的数据,它可能会失效。要验证listBox,用户必须选择新值,或通过再次选择相同的值来确认其旧选择。我无法弄清楚如何确定他们是否选择了相同的值,以便我可以重新设置listBox以进行验证。
valueChanged处理程序仅检测是否选择了新值。 clickHandler和focusHandler经常触发,因为它们在用户未选择值时触发。有什么想法吗?
答案 0 :(得分:2)
您可以使用以下内容改进clickHandler:
ignoreClick = true;
lastSelection = -1 ;
....
listBox.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if (!ignoreClick) {
lastSelection = listBox.getSelectedIndex();
}
ignoreClick = !ignoreClick;
}
});
我试过了,如果您选择了一个项目,那么事件才会被触发。但是你应该重新考虑你的用户界面,如上所述。