问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ExtJs4 中如何让TreePanel的节点可拖动?

发布网友 发布时间:2022-05-17 04:28

我来回答

3个回答

懂视网 时间:2022-05-17 08:49

一、结点拖放的位置
拖放结点包含了两个动作,拖(drag)和放(drop)。拖很好理解,就是将结点拖起来,拖哪一个结点的效果都是一样的。不过放结点就比较复杂了。放结点可分为如下两种情况:

追加(append)结点:如果将拖动的结点正好放在非叶子结点的上面,TreePanel组件会将这个结点移动到非叶子结点下面作为该结点的子结点。由于TreePanel的限制,叶子结点不能append。
在同一层做上下移动(above和below): 如果将拖动的结点放在叶子结点上,或放在非叶子结点的侧面,会将拖动结点作为兄弟结点来放置。
下面的设置将TreePanel组件设为结点可拖动状态。

在浏览器地址栏中输入如下的URL:
http://localhost:8080/netdisk/tree/drapdrop.html
当显示出树形结点时,按上面的拖动方法来拖动结点,会出现如图1、图2和图3所示的拖动效果。

图1 【英语】结点将作为【计算机】的子结点

图2 【英语】结点将作为【计算机】的兄弟结点,并移到【计算机】结点的前面(above拖放

图3 两个叶子结点交互位置(below拖放)
二、使叶子结点可以append

在默认情况下,TreePanel规定叶子结点不允许append。不管这个限制合理还是不合理,为了保持ExtJS版本的兼容性,读者应尽量不修改ExtJS的源代码。不过有时需要在叶子结点上append。那么在这种情况下,我们可以通过TreePanel的nodedragover事件来解决。
TreePanel会在内部判断,如果结点的leaf参数为true,则会允许该结点append。了解了TreePanel禁止结点append的原理,就很容易通过nodedragover事件来解决这个问题。
在nodedragover事件方法中有一个参数,通过该参数值的target属性可以获得拖动结点放置的目标结点。并在nodedragover方法中将该结点的leaf属性值设为false,代码如下:
代码如下:
tree.on("nodedragover", function(e){
var node = e.target;
if(node.leaf)
node.leaf=false;
return true;
});

在浏览器地址栏中输入如下的URL:
http://localhost:8080/netdisk/tree/leafappend.html
显示树形结构后,将某个结点拖动到叶子结点处,然后放下,就会在叶子结点下生成一个子结点,而且叶子结点的图标会变成非叶子结点的图标,如图4所示。


图4 使叶子结点可以append

除此之外,树结点还有其他的拖动方式,内容请见
《人人都玩开心网:Ext JS+Android+SSH整合开发Web与移动SNS》 一书的相关章节。

《Android/OPhone开发完全讲义》(本书版权已输出到台湾)

样章和目录下载
互动网 当当网 卓越亚马逊

《人人都玩开心网:Ext JS+Android+SSH整合开发Web与移动SNS》
样章下载
互动网

乐博Android手机客户端(新浪微博)发布

热心网友 时间:2022-05-17 05:57

//在创建树时配置项enableDD给一个true值就可以了

var tree = new Ext.tree.TreePanel({
width:300,
renderTo: "tree",
root: root,
title:"异步加载数据",
enableDD:true,//允许拖动
...
..

热心网友 时间:2022-05-17 07:15

加个插件就可以了
var store = Ext.create('Ext.data.TreeStore', {
root: {
expanded: true,
children: [
{ text: "detention", leaf: true },
{ text: "homework", expanded: true, children: [
{ text: "book report", leaf: true },
{ text: "alegrbra", leaf: true}
] },
{ text: "buy lottery tickets", leaf: true }
]
}
});

Ext.create('Ext.tree.Panel', {
title: 'Simple Tree',
width: 200,
height: 150,
store: store,
viewConfig: {
plugins: {
ptype: 'treeviewdragdrop'
}
},
rootVisible: false,
renderTo: Ext.getBody()
});
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音弹幕怎么关掉?怎么关闭抖音弹幕? 惠普LaserJet P3005D是否支持B5纸的双面打印? word打印出图片总是缺一部分怎么办-word打印图片不完整怎么解决_百度... 理想one哪里产的车辆? 抚州抚州ONE在哪里? one地址在哪里? 如何在图片上写字(如何在图片上添加文字) 网商贷为什么钱没到账 高级经济师职称怎么评 高级经济师需要评审吗 你来比划我来猜的游戏叫什么 户口改名字需要多久 jquery中的插件难不难? 你好请问安徽大学有编导专业吗 安徽有哪些大学招收编导 学编导在安徽能考哪些学校,哪些专业啊?能上211吗? 安徽省有哪些大学有编导专业的? 在安徽省编导统考中,有哪些好一点综合类的大学走统考呀! 安徽有哪些大学有广播电视编导专业的 合肥哪些大学有编导专业 我是合肥考生,想学编导专业,安徽哪家更专业一些? 广播电视编导专业在安徽招生的大学有哪些 安徽省内有哪些大学有广播电视编导专业 安徽哪些大学招广西编导生吗? 安徽艺术学院有编导专业吗 PCB编辑器的构成(各选项的含义) PCB基板是有什么构成的 我想问一下呀,我是学法律专业的,请问一下计算机二级对我们来说有考的必要吗,我们报培训班和考试要花600 请大家介绍几个韩国古代电影和电视剧,要求女性是盘着长长大辫子那种 古代朝鲜的头型问题 高德地图定位不准是软件问题还是手机问题 我给对方发了微信红包,但在对方还没有领取时把对方的删了,那对方还能领取那个红包吗_百度问一问 为什么我家里的亲戚要让我和我男朋友分手?他们为什么处处针对我,我做什么他们都要说 EXTJS 中如何Treepanel动态控制节点的拖拽 如何设置文档背景 日积月累是有关时间的词语吗? 三年级上册42页日积月累的意思 我的qq号丢了怎么找回密码? 新东方储值账户在哪里查看 在手机上的理发店储值账户里面的钱怎么取 翼支付里有现金账户和储值类账户,两者有什么区别? 我的qq号密码忘了怎么找回 我的QQ号被盗了 怎么找回密码啊 excel如何自动判断收入支付来计算余额 微信小程序点餐用的手机号已经绑定了其他怎么办 extJs如何找到树的某个节点 有的同学校服穿很长时间都不洗是什么心态? 我前段时间去银行办理贷款,好多天了也不给批,有什么办法可以快速贷款吗? 珍藏在心底的感动300 心灵深处的感动 日记300字