I'm having a problem with ZK binding and drag and drop feature. I have two listboxes:
<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>
If I edit the textbox in the right listbox and then immediately, without clicking anywhere, I drag and drop a cell from the left one, the text I added disappears. The only way I can save the text is to use an onchange event, but it is very heavy.
EDIT: I created a working demo here http://zkfiddle.org/sample/2t6r27o/24-drag-and-drop-test
Does anyone can give me a better solution?
Thank you very much!
SOLUTION
I added the "instant="true"" to the textbox and this solved my problem!
Thanks to all of you how helped me!