extjs实现treepanel到panel布局的拖拽

[img]http://dl.iteye.com/upload/attachment/0066/7390/0de18183-9071-383d-a3fa-30bbf4940627.jpg[/img]

[img]http://dl.iteye.com/upload/attachment/0066/7392/37040024-77e0-3750-8304-0bd19f00fc96.jpg[/img]
一下是树的实现代码:

var mytree=new Ext.tree.TreePanel({

 animate:true,// 以动画形式伸展,收缩子节点
enableDD: true,
ddGroup:'mygroup',
rootVisible:true,// 是否显示根节点
autoScroll:true,
bodyStyle: 'background-color: #dfe8f6;',
height:300,
width:180,
renderTo : 'treePanel',
lines:true,// 节点之间连接的横竖线
dataUrl:getWebRoot()+"/jsp/splitScreen/getAppuserStations.faces",
root:{
nodeType: 'async',
draggable: false,
expand:true,
   id:"root",
   text:"台站功能"
}

});

以下是panel布局的实现代码:
var tablePanel = new Ext.Panel({

id: 'splitScreenPanel',
border: false,
renderTo:'tablePanel',
layout: {
type: 'vbox',
align: 'stretch'
},
defaults: {
bodyStyle: 'background-color: #dfe8f6;'

},
frame:true,
height:300,
width:300,
items: [{
flex:0.3,
layout: {
type: 'hbox',
align: 'stretch'
},
defaults: {
frame:true
},
items:[myForm]
},{
flex: 1,
layout: {
type: 'hbox',
align: 'stretch'
},
margins: '0 0 5 0',
defaults: {
ddGroup: 'mygroup',
tools:getTools,
listeners: {
render:renderHander
},
frame:true
},
items: [{
id: 'Screen1',
title: '一',
flex: 1,
margins: '0 5 0 0',
html : "<div id='div1'></div>"
}, {
id: 'Screen2',
title: '二',
flex: 1,
html : "<div id='div2'></div>"
}]
}]
});
if(splitNum==4){
tablePanel.add({
flex: 1,
layout: {
type: 'hbox',
align: 'stretch'
},
defaults: {
ddGroup: 'mygroup',
tools:getTools,
listeners: {
render:renderHander
},
frame:true
},
items: [{
id: 'Screen4',
title: '三',
flex: 1,
margins: '0 5 2 0',
html : "<div id='div4'></div>"
}, {
id: 'Screen5',
title: '四',
flex: 1,
margins: '0 0 2 0',
html : "<div id='div5'></div>"
}]
});
}else{
tablePanel.add({
flex: 1,
layout: {
type: 'hbox',
align: 'stretch'
},
defaults: {
ddGroup: 'mygroup',
tools:getTools,
listeners: {
render:renderHander
},
frame:true
},
items: [{
id: 'Screen3',
title: '三',
flex: 1,
margins: '0 0 2 0',
html : "<div id='div3'></div>"
}]
});
}
tablePanel.doLayout();
动态实现了分几块。
分屏上的按钮:

var getTools= [{
id: 'search',
qtip: '编辑',
handler: function(event, toolEl, panel) {
searchConditionWin.show();
}
},{ id: 'close',
qtip: '删除',
handler: function(event, toolEl, panel) {
getDefault(panel.id);
}
}
];

拖动处理函数:

var renderHander = function(cmp) {
new Ext.dd.DropTarget(cmp.body.dom, {
ddGroup: 'mygroup',
notifyDrop: function(ddSource, e, data) {
if (!data.node.hasChildNodes()) {
cmp.setTitle(data.node.parentNode.attributes.text);
}
return true;
}
});
};

主要实现就是把要拖动的东西放到一个组里,然后加上一个拖动处理函数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值