我正在尝试使用GWT创建一个ListBox。我正在使用UiBinder来创建这个领域。
我想在列表框中设置默认文本,当用户点击该框时,它应该显示列表项。再一次,如果用户没有选择任何选项,它应该再次显示默认文本。
使用Uibinder或一些ListBox方法的任何方法吗?
答案 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;
}
}