将默认文本设置为GWT ListBox

时间:2011-04-01 17:39:24

标签: gwt listbox uibinder

我正在尝试使用GWT创建一个ListBox。我正在使用UiBinder来创建这个领域。

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

使用Uibinder或一些ListBox方法的任何方法吗?

2 个答案:

答案 0 :(得分:4)

如果我理解正确,您希望显示一个值,但当用户点击列表时,它会消失并显示列表项? 据我所知,原则上没有选择。

您可以执行的操作是添加第一项以保留默认值。 您可以通过在代码中使用addItem或使用:

来语法编写
<g:Listbox> 
    <g:item value="-1">Default text</g:item>
</g:Listbox>

适用于gwt 2.1 +

仍然可以选择该值。 您可以选择忽略它或将值为“disabled”的属性“禁用”添加到选项元素:

listbox.getElement().getFirstChildElement().setAttribute("disabled" ,"disabled" )

希望它有所帮助:)

答案 1 :(得分:0)

如果选择“Null”,您还可以使用渲染器控制显示的内容。

(灵感来自:How do I add items to GWT ListBox in Uibinder .ui.xml template ?

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


}