我想创建一个选择框来加载一系列值。
我已经编写了代码,但是值没有加载到selectbox中,所以它是空的。我认为,控制器和视图之间的连接是不正确的。你能帮忙吗?提前谢谢。
<zk xmlns="">
<window id="win" apply="hw.SalesController">
<grid sclass="editHeader">
<columns visible="false">
<column width="150px"/>
<column/>
</columns>
<rows>
<row>
<cell>
Sales Type
</cell>
<cell>
<!--SELECTBOX-->
<selectbox id="salesTypeListbox" model="${$composer.salesModel}"
>
<template name="model">
<listitem label="${each}" />
</template>
</selectbox>
</cell>
</row>
</rows>
</grid>
</window>
</zk>
public class SalesController extends SelectorComposer<window> {
private ListModelList<String> salesModel = new ListModelList<String>(SalesHeader.getSalesType());
}
public class SalesHeader {
public static List<String> getSalesType() {
return Arrays.asList(new String[]{"BU-0", "BU-1", "BU-2", "BU-3"});
}
}
答案 0 :(得分:1)
有两个问题:
第一个错误是
在[您的作曲家类]
类型中找不到属性'salesModel'
这是因为你在作曲家中缺少一个getter方法:
public ListModelList<String> getSalesModel() {
return salesModel;
}
第二个错误与选择框模板中的listitem
元素有关。这导致:
Listitem的父级必须是Listbox,而不是Selectbox
您只需在模板中使用each
或label
元素就可以解决这个问题:
<template name="model">
${each}
</template>
Here你可以找到一个有效的ZKFiddle示例。