<script type="text/javascript">
Ext.onReady(function() {
var cmItems = [];
var cmConfig = {};
var cm = new Ext.grid.ColumnModel([
{ header: '编号', dataIndex: 'id' },
{ header: '名称', dataIndex: 'name' },
{ header: '描述', dataIndex: 'descn' }
])
var data = [
// [1, 'name1', 'descn1'],
// [2, 'name2', 'descn2'],
// [3, 'name3', 'descn3'],
// [4, 'name4', 'descn4'],
// [5, 'name5', 'descn5']
]
var store = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(data),
reader: new Ext.data.ArrayReader({}, [
{ name: 'id' },
{ name: 'name' },
{ name: 'descn' }
])
})
store.load();
var grid = new Ext.grid.GridPanel({
height: 200,
width: 320,
hideHeaders: true,
store: store,
cm: cm,
enableDragDrop: true
})
var root = new Ext.tree.TreeNode({
id: 'root',
text: '数据一'
});
var c1 = new Ext.tree.TreeNode({
id: 'id',
text: '1'
})
var c2 = new Ext.tree.TreeNode({
id: 'name',
text: 'name1'
})
var c3 = new Ext.tree.TreeNode({
id: 'descn',
text: 'descn1'
})
root.appendChild(c1);
root.appendChild(c2);
root.appendChild(c3);
var tree = new Ext.tree.TreePanel({
animate: true,
enableDD: true,
ddGroup: 'GridDD',
enableDrop: true,
renderTo: 'tree',
root: root,
width: 300
})
var gridTemp = new Ext.Panel({
layout: 'fit',
items: grid,
height: 200,
width: 320,
renderTo: 'gridTemp'
});
var ddrow = new Ext.dd.DropTarget(grid.container, {
ddGroup: 'GridDD',
copy: false,
notifyDrop: function(dd, e, data) {
var selectedNode = tree.getSelectionModel().getSelectedNode();
var tmpid = selectedNode.attributes.id;
var tmptext = selectedNode.attributes.text;
if (tmpid == "root") {
alert("根节点不能移动");
return;
}
if (tmpid == "id") {
cmConfig = { header: "编号", dataIndex: "id" }
}
if (tmpid == "name") {
cmConfig = { header: "名称", dataIndex: "name" }
}
if (tmpid == "descn") {
cmConfig = { header: "描述", dataIndex: "descn" }
}
cmItems.push(cmConfig);
gridTemp.removeAll();
var Tdata = [[tmptext]
]
var Tstore = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(Tdata),
reader: new Ext.data.ArrayReader({}, [
{ name: 'id' },
{ name: 'name' },
{ name: 'descn' }
])
})
Tstore.load();
var Tcm = new Ext.grid.ColumnModel(cmItems);
var Tgrid = new Ext.grid.GridPanel({
height: 400,
width: 300,
store: Tstore,
cm: Tcm,
enableDragDrop: true
})
gridTemp.insert(0, Tgrid);
Tgrid.doLayout();
gridTemp.doLayout();
}
})
})
</script>
<body>
<form id="form1" runat="server">
<div id="tree">
</div>
<div id="gridTemp">
</div>
</form>
</body>
</html>