ZK拖放和绑定

  • 本文关键字:绑定 拖放 ZK java web zk
  • 更新时间 :
  • 英文 :


我在使用ZK绑定和拖放功能时遇到了问题。我有两个列表框:

<listbox id="left" width="100%" model="@load(vm.contacts)" height="200px" draggable="true" droppable="true" onDrop="@command('move')">                      
    <listhead>
        <listheader label="Contatto" align="center"  />
    </listhead>
    <template name="model" var="contact">
        <listitem value="@bind(contact)" draggable="true" droppable="true" onDrop="@command('move')"> 
           <listcell src="/img/contact-icon_x32.jpg" label="@load(contact.person.surname.concat(' ').concat(contact.person.name))" />
        </listitem>
    </template>
</listbox>
...
<listbox width="100%" id="right" model="@load(vm.contactsQuickKey)" height="250px" draggable="true" droppable="true" onDrop="@command('move')" >
    <listhead>
         <listheader label="Etichetta" align="center"  />
         <listheader label="Contatto" align="center"  />
    </listhead>
    <template name="model" var="contactQuickKey">
         <listitem value="@bind(contactQuickKey)" draggable="true" droppable="true" onDrop="@command('move')">
             <listcell>                                   
                 <textbox width="90%" value="@load(contactQuickKey.label) @save(contactQuickKey.label, before={'move', 'saveData', 'setLeftActivePage'})"/>
             </listcell>
             <listcell src="/img/contact-icon_x32.jpg" label="@load(contactQuickKey.contact.person.surname.concat(' ').concat(contactQuickKey.contact.person.name))" />
         </listitem>
    </template>
</listbox>

如果我编辑右边列表框中的文本框,然后立即,不单击任何地方,从左边的单元格中拖放一个单元格,我添加的文本就会消失。我保存文本的唯一方法是使用onchange事件,但是它非常重。

编辑:我在这里创建了一个工作演示http://zkfiddle.org/sample/2t6r27o/24-drag-and-drop-test

谁能给我一个更好的解决方案?

非常感谢!

<

解决方案/strong>

我在文本框中添加了"instant="true",这就解决了我的问题!

感谢所有帮助我的人!

解决方案是将instant="true"放到文本框。这就解决了拖放时丢失文本修改的问题。

您的问题是,您的文本列表没有加载到服务器端Textbox
你保存前下降before={'move'...,但你不能加载到
Textbox,因为这需要notifyChange,它在
之前填充@command('move')被执行,这是不可能的,因为zk
执行周期和move导致save

你可以做的是,从
中的数据手动更改Textbox使用move命令创建虚拟机类。但要找出
可能是个问题被拖拽的Textbox属于contactQuickKey的哪个实例

顺便说一下,onChanging的问题在哪里?交通不应该是一个

编辑

由于某些原因,数据没有保存在move命令之前,如果
在拖动之前没有其他用户操作。
也许是一个bug?

最新更新