我是Vaadin的新手,我尝试过滤掉桌子上的数据。我添加一个声明为isoCode
的TextField并向其添加TextChangeListener。
当我使用isoCode.getValue()
获取值作为过滤字符串时,它不起作用。
但是当我使用TextChangeEvent event.getText()
值时,它可以完美地工作。有人可以向我解释说明原因吗?
final TextField isoCode = new TextField();
isoCode.setInputPrompt("ISO Code");
isoCode.addTextChangeListener(new TextChangeListener(){
private static final long serialVersionUID = 1L;
SimpleStringFilter filter = null;
@Override
public void textChange(TextChangeEvent event) {
/**
* This code not working
*
if(isoCode.getValue().trim().length() > 0){
filter = new SimpleStringFilter("ISO Code", event.getText(),true, false);
appn0010Form.removeAllContainerFilters();
appn0010Form.addContainerFilter(filter);
}
*/
/**
* This code is working
*/
if(event.getText().trim().length() > 0){
filter = new SimpleStringFilter("ISO Code", event.getText(),true, false);
appn0010Form.removeAllContainerFilters();
appn0010Form.addContainerFilter(filter);
}
}
});
答案 0 :(得分:0)
isoCode.getValue()
在绑定最新值之前给出textfield的值。
event.getText()
在绑定最新值后为您提供值。
新输入的值只有在Textfield模糊后才会绑定。