为什么我不能在zk框架中使用listbox的多选?

时间:2014-08-25 15:46:11

标签: zk

我按照zk demo创建了具有多个选择的列表框。 这是我的zul文件:

<window title="demo"
    xmlns:h="http://www.w3.org/1999/xhtml"
    xmlns="http://www.zkoss.org/2005/zul"
    apply="com.viettel.voffice.controller.ListboxController">
<listbox id="lb" model="${$composer.list}" multiple="true" checkmark="true" mold="paging" pageSize="10">
    <listhead>
        <listheader label="STT"/>
        <listheader label="Name"/>
    </listhead>
    <template name="model">
        <listitem>
            <listcell label="${forEachStatus.index}"/>
            <listcell label="${each}"/>
        </listitem>
    </template>
</listbox>

控制器:

public class ListboxController extends SelectorComposer<Component> {

@Wire
private Listbox lb;

private ListModelList list;

@Override
public void doAfterCompose(Component comp) throws Exception {
    super.doAfterCompose(comp);

    List listData = new BigList(1000);
    list = new ListModelList(listData);
    lb.setModel(list);
    lb.renderAll();
    lb.setMultiple(true);
}

@Override
public ComponentInfo doBeforeCompose(Page page, Component parent, ComponentInfo compInfo) {
    return super.doBeforeCompose(page, parent, compInfo);
}

public ListModelList getList() {
    return list;
}

BigList.java:

public class BigList extends AbstractList<Integer> {

private int size;

public BigList(int sz) {
    if (sz < 0) {
        throw new IllegalArgumentException("Negative not allowed: " + sz);
    }
    size = sz;
}

public int size() {
    return size;
}

public Integer get(int j) {
    return Integer.valueOf(j);
}

}

这是zk显示的内容:

https://farm4.staticflickr.com/3919/15032438702_fb403efc70_o.png

为什么列表框不显示多项选择?

我刚解决了。只需添加以下行: model.setMultiple(真); :d

1 个答案:

答案 0 :(得分:2)

您必须在afterCompose()方法

中添加此内容时犯了一些错误
list.setMultiple(true);