ZK:将值/文本加载到选择框中

时间:2015-11-20 19:16:27

标签: zk

我有一个selectbox,想要将值和文本加载到模板中,类似于HTML下拉框。我在后端使用带有Java的ZK框架。

<selectbox id="buListbox" model="${$composer.buModel}" >
  <template name="model">
    <label value="${each}" />
  </template>
</selectbox>

1 个答案:

答案 0 :(得分:0)

使用ZK时,您不需要使用该值来识别所选对象,就像在HTML中一样。

使用MVC模式时,通过model属性绑定模型,所选项目也存储在该模型中,可以通过model.getSelection()在java中检索。 此外,模型不限于String的列表,但它可以保存您想要的任何对象类型。在template部分中,您可以显示该对象的任何属性。然后属性&#39; toString()方法用于获取显示的值。这也适用于${each}本身。

示例:

假设您的模型是ListModelList类型ValueType

public class ValueType {
      private String value;
      private String text;

    public ValueType(String value, String text) {
      this.value=value;
      this.text=text;
    }

    public String getText() {
      return this.text;
    }

    public String getValue() {
      return this.value;
    }
  }

private ListModelList<ValueType> typesModel;

public ListModelList<ValueType> getTypesModel() {
   return typesModel;
}

您可以使用selectbox的模型/模板来显示它的文字属性:

<selectbox id="typesSelectbox" model="${$composer.typesModel}">
      <template name="model">
           ${each.text}
      </template>
</selectbox>

在java中,您可以通过typeModel.getSelection()获取所选项目。

Here你可以找到一个有效的ZKFiddle示例。