Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将默认文本设置为GWT列表框_Gwt_Listbox_Uibinder - Fatal编程技术网

将默认文本设置为GWT列表框

将默认文本设置为GWT列表框,gwt,listbox,uibinder,Gwt,Listbox,Uibinder,我正在尝试使用GWT创建一个列表框。我正在使用UiBinder创建字段 我想在列表框上设置一个默认文本,当用户单击该框时,它会显示列表项。同样,如果用户没有选择任何选项,它应该再次显示默认文本 使用Uibinder或某些ListBox方法可以实现这一点吗?如果我理解正确,您希望显示一个值,但当用户单击列表时,它会消失并显示列表项? 据我所知,这是没有选择的 您可以做的是添加第一项来保存默认值。 您可以通过在代码中使用addItem或使用以下语法来完成此操作: <g:Listbox>

我正在尝试使用GWT创建一个列表框。我正在使用UiBinder创建字段

我想在列表框上设置一个默认文本,当用户单击该框时,它会显示列表项。同样,如果用户没有选择任何选项,它应该再次显示默认文本


使用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;
    }


}