六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 38|回复: 0

拖拽组件事例

[复制链接]

升级  6.33%

63

主题

63

主题

63

主题

举人

Rank: 3Rank: 3

积分
219
 楼主| 发表于 2013-1-29 11:23:49 | 显示全部楼层 |阅读模式
1,页面元素
 
 
<window id="dropDemoWin" apply="controller.DropDemoController"> <listbox>   <listitem id="draged1111111111" draggable="true" droppable="true" onDrop="dropDemoWin$composer.onDropListitem(event)"> </listbox></window> 如果不知道dropDemoWin$composer怎么来的看这里【zk开发】如何在页面中获得composer对象
 
 
2,将拖放的组件添加进来 onDropListitem
 
 
public class DropDemoController extends GenericAutowireComposer {     public void onDropListitem(DropEvent event) {if (!(event.getDragged() instanceof Listitem)) {// ZkUtils.showError("some errors");return;}// event.getDragged()获得你托动过来的组件Listitem draggedListitem = (Listitem) event.getDragged();// event.getTarget()是你释放鼠标,鼠标下的那个组件,即draggedListitem将要放在那个组件上,或下Listitem targetListitem = (Listitem) event.getTarget();////放在目标组件之前//targetListitem.getParent()//.insertBefore(draggedListitem, targetListitem);//当然你也可以放在目标组件之后//Component afterComp=targetListitem.getNextSibling();//后一个组件是托过来的组件,什么都不做if(afterComp ==draggedListitem){return;}if(afterComp==null){//如果没有下一个组件说明target是最后一个,直接添加到listbox里draggedListitem.detach();draggedListitem.setParent(targetListitem.getParent());}else{//注意这里的insertBefore的第二个参数targetListitem.getParent().insertBefore(draggedListitem, afterComp);}}}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表