ZK如何使用listcell中的多个组件对列表框进行排序

时间:2015-12-08 08:34:59

标签: sorting listbox zk

在下面的列表框中,我的listcell包含"选择"和"标签"零件。因此,即使listheader应用了sort =" auto",它实际上也没有用。无论如何

<listbox id="idResultListBox" checkmark="true" vflex="1"  >
                    <listhead>
                        <listheader
                            label="${ labels.result.result }" sort="auto"/>
                        <listheader
                            label="${ labels.result.resultEnteredBy }" sort="auto"/>
                        <listheader
                            label="${ labels.result.resultEnteredOn }" sort="auto"/>
                        <listheader
                            label="${ labels.result.resultAuditedBy }" sort="auto"/>
                    </listhead>
                    <listitem 
                        forEach="${attAuditResultList }"
                        value="${each }"
                        disabled="${ displayMode!='view' and each.auditedDate!=null }"
                        checkable="${ each.auditedDate==null }">
                        <listcell>
                            <select value="${ each.result }" options="${ resultTypeList }"
                                if="${ each.auditedDate==null }" visible="${ each.auditedDate==null and displayMode!='view' }"
                                 />
                            <label value="${ each.result.name }"
                                visible="${ each.auditedDate!=null or displayMode=='view' }" forward="onCreate=onCreateResultLabel()"/>
                        </listcell>
                        <listcell>
                            <activeassessor if="${ each.auditedDate==null }" value="${ each.enteredBy }"
                                 />
                            <label value="${ each.enteredBy.name }"
                                visible="${ each.auditedDate!=null }" />
                        </listcell>
                        <listcell
                            label="${ each.enteredDateAsString }" />
                        <listcell label="${ each.auditedBy.name }" />>
                    </listitem>
                </listbox>

1 个答案:

答案 0 :(得分:0)

您正在使用sort="auto"对对象进行排序 他没有正确排序是正常的,因为你没有说明要排序的内容。

  1. <listheader sort="auto" />不区分大小写。
  2. <listheader sort="auto(name)" />在object.name
  3. 上是case-SENSITIVE
  4. <listheader sort="auto(LOWER(name))" />在object.name
  5. 上不区分大小写

    因此,对于第二个单元格,如果要对enteredBy.name不区分大小写进行排序,则需要执行以下操作:

    <listheader label="${ labels.result.resultEnteredBy }" sort="auto(LOWER(enteredBy.name))"/>