我有一个listheader元素,其中设置了sort =“auto”,但是当我单击该列时,列表不会排序。箭头显示和反向,但列表顺序不会改变。
附加到列表中的组件是org.zkoss.zul.A
个对象,这似乎是排序不起作用的原因。
是否有一种解决方法可以对列表项为A对象的列表框进行排序?
我的祖尔:
<listbox id="myList" checkmark="true" multiple="true">
<listhead>
<listheader id='select' label="" width="30px" align="left"/>
<listheader label="myLabel" width="75px" sort="auto"/>
</listhead>
</listbox>
常规:
Listitem li = new Listitem(value: "myId")
li.appendChild(new Listcell())
Listcell listcell = new Listcell()
Long theId = "12345"
A link = new A(label: theId.toString(), style: "color:blue;")
listcell.appendChild(invoiceLink)
li.appendChild(listcell)
答案 0 :(得分:0)
我正在使用MVVM方法,这就是我对列表框进行排序的方式
<listbox>
<listhead>
<listheader label="Hopper" width="60px" sort="auto(hopperCode)" />
<listheader label="Stop Time" width="80px" sort="auto(startTime)" />
</listhead>
<template name="model">
<listitem>
<listcell label="@load(each.hopperCode)" />
<listcell label="@load(each.startTime)" />
</listitem>
</template>
</listbox>
答案 1 :(得分:0)
根据this paragraph in the documentation,按列表单元格的标签对自动排序进行排序。您没有使用Listcell.setLabel()
,但会向其附加A
个组件。由于listcells&#39;标签都是一样的(即&#34;&#34;),排序不做任何事情。
试试setting custom comparators。为此,我建议使用模型而不是自己创建列表项。