列表框项目仍处于选中状态

时间:2017-11-30 11:40:20

标签: zk

我有一个带有Listbox的bandbox。

我的列表框中有“onSelect”侦听器,在此我执行了myListbox.clearSelection() 在读取所选项的值并将其写在TextBox上之后。

问题是,当我再次打开bandpopup时,列表中的所选项目仍保持选中状态并标记为蓝色,我无法选择相同的元素两次,因为它仍处于选中状态。

例如:

  1. 打开Bandpopup。
  2. Clik in a element,将值写入Textbox,然后调用learSelection()。
  3. 用户清除文本框。
  4. 重新打开Bandpopup。
  5. 单击ListBox中的相同项目。
  6. 没有任何结果,因为此元素仍然处于选中状态。
  7. Zul代码:

    <?page title="Enviar a" contentType="text/html;charset=UTF-8"?>
    <?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
    <?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" arg0="./envioWindow" ?>
    <zk>
        <window title="Enviar a" border="normal" width="60%" id="envioWindow"
            apply="..............">
            <bandbox id="sectorReparticionBusquedaSADE" >
                <bandpopup apply="XXXXXX.FindSectorReparticionesBusquedaSADEBandboxComposer"
                id="sectorReparticionesComboBusquedaSADE" width="650px">
                    <groupbox mold="3d">
                        <vbox>
                            <hbox>
                                <textbox id="textoSectorReparticionBusquedaSADE" />
                            </hbox>
                            <paging id="pagingSectorReparticionesDocsSADE" pageSize="10" />
                            <listbox mold="paging"
                            width="600px" id="sectoresReparticionesBusquedaSADEListbox"
                            model="@{listaSectorReparticionSADESeleccionada}"
                            selectedItem="@{sectorReparticionSeleccionada}"
                            paginal="${pagingSectorReparticionesDocsSADE}">
                                <listhead>
                                    <listheader label="Código" width="30%" />
                                    <listheader label="Nombre" height="70%" />
                                </listhead>
                                <listitem self="@{each=reparticion}">
                                    <listcell label="@{reparticion.codigo}" />
                                    <listcell label="@{reparticion.nombre}" />
                                </listitem>
                            </listbox>
                        </vbox>
                    </groupbox>
                </bandpopup>
            </bandbox>
            <bandbox id="sectorBusquedaSADE" tooltiptext="Ingrese el nombre del sector correspondiente a la repartición seleccionada a la que desea agregar para enviarle un pase múltiple." >
                <bandpopup apply="ar.gob.gcaba.ee.satra.pl.consulta.FindSectorBusquedaSADEBandboxComposer" 
                id="sectorComboBusquedaSADE" width="650px">
                    <groupbox mold="3d">
                        <vbox>
                            <hbox>
                                <textbox id="textoSectorBusquedaSADE" />
                            </hbox>
                            <paging id="pagingSectorDocsSADE" pageSize="10" />
                            <listbox mold="paging"
                            width="600px" id="sectoresBusquedaSADEListbox"
                            model="@{listaSectorSADESeleccionado}"
                            selectedItem="@{sectorSeleccionado}"
                            paginal="${pagingSectorDocsSADE}">
                                <listhead>
                                    <listheader label="Código" width="30%" />
                                    <listheader label="Nombre" height="70%" />
                                </listhead>
                                <listitem self="@{each=sector}">
                                    <listcell label="@{sector.codigo}" />
                                    <listcell label="@{sector.nombre}" />
                                </listitem>
                            </listbox>
                        </vbox>
                    </groupbox>
                </bandpopup>
            </bandbox>
        </window>
    </zk>
    

    列表框“sectoresReparticionesBusquedaSADEListbox”有问题,“sectoresBusquedaSADEListbox”没有这个问题,对我来说两者都是平等的。

1 个答案:

答案 0 :(得分:0)

每次打开BandPopup时,我终于解决了重置绑定器的问题:

private void resetComponent() {
    this.binder = new AnnotateDataBinder(sectoresReparticionesBusquedaSADEListbox);
    this.binder.bindBean("sectorReparticionSeleccionada", this.sectorReparticionSeleccionada);
    this.binder.loadAll();
    this.listaSectorReparticionSeleccionada = new ArrayList<ReparticionBean>();
    this.binder.bindBean("listaSectorReparticionSADESeleccionada", this.listaSectorReparticionSeleccionada);
}