源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

使用ExtJS技术实现的拖动树结点

  • 时间:2020-11-25 03:02 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:使用ExtJS技术实现的拖动树结点
[b]一、结点拖放的位置[/b] 拖放结点包含了两个动作,拖(drag)和放(drop)。拖很好理解,就是将结点拖起来,拖哪一个结点的效果都是一样的。不过放结点就比较复杂了。放结点可分为如下两种情况: 追加(append)结点:如果将拖动的结点正好放在非叶子结点的上面,TreePanel组件会将这个结点移动到非叶子结点下面作为该结点的子结点。由于TreePanel的限制,叶子结点不能append。 在同一层做上下移动(above和below): 如果将拖动的结点放在叶子结点上,或放在非叶子结点的侧面,会将拖动结点作为兄弟结点来放置。 下面的设置将TreePanel组件设为结点可拖动状态。 在浏览器地址栏中输入如下的URL: http://localhost:8080/netdisk/tree/drapdrop.html 当显示出树形结点时,按上面的拖动方法来拖动结点,会出现如图1、图2和图3所示的拖动效果。 [img]http://files.jb51.net/upload/201008/20100805132404754.jpg[/img]         图1  【英语】结点将作为【计算机】的子结点 [img]http://files.jb51.net/upload/201008/20100805132404789.jpg[/img] 图2  【英语】结点将作为【计算机】的兄弟结点,并移到【计算机】结点的前面(above拖放 [img]http://files.jb51.net/upload/201008/20100805132404479.jpg[/img]            图3  两个叶子结点交互位置(below拖放) [b]二、使叶子结点可以append[/b] 在默认情况下,TreePanel规定叶子结点不允许append。不管这个限制合理还是不合理,为了保持ExtJS版本的兼容性,读者应尽量不修改ExtJS的源代码。不过有时需要在叶子结点上append。那么在这种情况下,我们可以通过TreePanel的nodedragover事件来解决。 TreePanel会在内部判断,如果结点的leaf参数为true,则会允许该结点append。了解了TreePanel禁止结点append的原理,就很容易通过nodedragover事件来解决这个问题。 在nodedragover事件方法中有一个参数,通过该参数值的target属性可以获得拖动结点放置的目标结点。并在nodedragover方法中将该结点的leaf属性值设为false,代码如下:
[url=http://www.blogjava.net/nokiaguy/archive/2010/06/02/322547.html]样章和目录下载  [/url][url=http://www.china-pub.com/196865]互动网[/url]  [url=http://product.dangdang.com/product.aspx?product_id=20872024&ref=search-0-A]当当网  [/url][url=http://www.amazon.cn/gp/product/B003U5UPHK/ref=s9_simh_gw_p14_i1?pf_rd_m=A1AJ19PSB66TGU&pf_rd_s=center-2&pf_rd_r=00C9JTV5XHSR612VZ9QK&pf_rd_t=101&pf_rd_p=58223152&pf_rd_i=899254051]卓越亚马逊 [/url] [b]《人人都玩开心网:Ext JS+Android+SSH整合开发Web与移动SNS》[/b]  [url=http://www.blogjava.net/nokiaguy/archive/2010/07/24/327003.html]样章下载[/url]  [url=http://www.china-pub.com/196905]互动网[/url]  [url=http://www.blogjava.net/nokiaguy/archive/2010/04/13/318124.html]乐博Android手机客户端(新浪微博)[/url]发布
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部