将默认文本设置为GWT列表框
我正在尝试使用GWT创建一个列表框。我正在使用UiBinder创建字段 我想在列表框上设置一个默认文本,当用户单击该框时,它会显示列表项。同样,如果用户没有选择任何选项,它应该再次显示默认文本将默认文本设置为GWT列表框,gwt,listbox,uibinder,Gwt,Listbox,Uibinder,我正在尝试使用GWT创建一个列表框。我正在使用UiBinder创建字段 我想在列表框上设置一个默认文本,当用户单击该框时,它会显示列表项。同样,如果用户没有选择任何选项,它应该再次显示默认文本 使用Uibinder或某些ListBox方法可以实现这一点吗?如果我理解正确,您希望显示一个值,但当用户单击列表时,它会消失并显示列表项? 据我所知,这是没有选择的 您可以做的是添加第一项来保存默认值。 您可以通过在代码中使用addItem或使用以下语法来完成此操作: <g:Listbox>
使用Uibinder或某些ListBox方法可以实现这一点吗?如果我理解正确,您希望显示一个值,但当用户单击列表时,它会消失并显示列表项? 据我所知,这是没有选择的 您可以做的是添加第一项来保存默认值。 您可以通过在代码中使用addItem或使用以下语法来完成此操作:
<g:Listbox>
<g:item value="-1">Default text</g:item>
</g:Listbox>
希望能有所帮助:)如果选择了“Null”,您还可以使用渲染器来控制显示的内容 (灵感来自:)
私有类SimpleRenderer实现渲染器{
私有字符串emptyValue=“选择一个值”;
@凌驾
公共字符串呈现(T val){
if(val==null){
返回空值;
}
返回值toString();
}
@凌驾
公共void呈现(T val,可追加可追加)引发IOException{
append(render(val));
}
public void setEmptyValue(字符串emptyValue){
this.emptyValue=emptyValue;
}
}
listbox.getElement().getFirstChildElement().setAttribute("disabled" ,"disabled" )
private class SimpleRenderer implements Renderer<T>{
private String emptyValue = "Select a value";
@Override
public String render(T val) {
if(val == null) {
return emptyValue;
}
return val.toString();
}
@Override
public void render(T val, Appendable appendable) throws IOException {
appendable.append(render(val));
}
public void setEmptyValue(String emptyValue) {
this.emptyValue = emptyValue;
}
}