`
Robin1320
  • 浏览: 38081 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Ext grid向tree拖动

阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
 <script type="text/javascript" src=" Ext/ext.ux.tree.ArrayTree.js"></script>
<title></title>
<style type="text/css">
#grid-example {width: 100%;height: 100%;}
</style>
<script language="javascript">
var tree;
   $(document).ready(function(){
    var Tree = Ext.tree;  
       
   tree = new Tree.TreePanel({  
        el:'tree_div',  
        autoScroll:true,  
        animate:true,  
        enableDD: true,  
        border:false,
        ddGroup: "GridDD",  
        containerScroll: true,  
        loader: new Tree.TreeLoader({  
            dataUrl : '$!{basePath}/loadView.do?viewName=report/tree.json' 
        })  
    });   
    var root = new Tree.AsyncTreeNode({  
        text: 'RDM报表分组',  
        draggable:false,  
        id:'source' 
    });  
    tree.setRootNode(root);  
    tree.on('beforenodedrop',function(dropEvent){  
        var node = dropEvent.target;    // 目标结点  
            var data = dropEvent.data;      // 拖拽的数据  
            var point = dropEvent.point;    // 拖拽到目标结点的位置
            alert("point:"+point);
            if(!data.node) {  
                switch(point) {  
                    case 'append':  
                        // 添加时,目标结点为node,子结点设为空  
                        inserTreeNode(node, null, data.selections);  
                        break;  
                    case 'above':  
                        // 插入到node之上,目标结点为node的parentNode,子结点为node  
                        inserTreeNode(node.parentNode, node, data.selections);  
                        break;  
                    case 'below':  
                        // 插入到node之下,目标结点为node的parentNode,子结点为node的nextSibling  
                        inserTreeNode(node.parentNode, node.nextSibling, data.selections);  
                        break;  
                }  
            }  

    });
    // render the tree  
    tree.render();  
    root.expand(); 
    //tree.on('contextmenu', menuShow);

    createRptList();
    //createFormList();
});
function menuShow ( node )
            {
                treeRightMenu.show(node.ui.getAnchor());
                node.select();//让右击是选中当前节点               
            };

function inserTreeNode (node, refNode, selections) {  

    for(var i = 0; i < selections.length; i ++) {  
        var record = selections[i];  
        alert(record.get('text'));
        tree.appendChild(new Tree.AsyncTreeNode({text:'dd',id:'11'}));
//         node.insertBefore(new Tree.AsyncTreeNode({  
//             text: record.get('text'),  
//             id: record.get('id'),  
//             leaf: record.get('leaf'),  
//             cls: record.get('cls')  
//         }), refNode);  
    }  
}  
function createRptList(){
// grid的数据源  
var data = [    
    ['VIP用户投诉', 211, true, 'file'],  
    ['12', 212, true, 'file'],  
    ['13', 213, true, 'file'],  
    ['14', 214, true, 'file'],  
    ['15', 215, true, 'file'],  
    ['16', 221, true, 'file'],  
    ['17', 222, true, 'file'],  
    ['18', 223, true, 'file'],  
    ['19', 224, true, 'file'],  
    ['20', 225, true, 'file']  
];  
 
var store = new Ext.data.Store({  
    reader: new Ext.data.ArrayReader({}, [  
       {name: 'text'},  
       {name: 'id'},  
       {name: 'leaf'},  
       {name: 'cls'}  
    ])  
});  
store.loadData(data);  
 

// 建一个grid,并设置到tgDD拖拽组中  
var Grid = Ext.grid;  
 
var model = new Grid.ColumnModel([  
    {header: "text",   sortable: true, dataIndex: 'text'},  
    {id:'id', header: "id",   sortable: true, dataIndex: 'id'},  
    {header: "leaf",   sortable: true, dataIndex: 'leaf'},  
    {header: "cls",    sortable: true, dataIndex: 'cls'}  
]);  
 
 
 
var grid = new Grid.GridPanel({  
    renderTo: 'grid',  
    ds: store,  
    cm: model,  
    sm: new Grid.RowSelectionModel(),  
    autoHeight: true,  
    enableDragDrop: true,  
    ddGroup: "GridDD" 
}); 

}
function createFormList(){
var msForm = new Ext.form.FormPanel({
renderTo: 'multiselect',
title:'dddddddddd',
items:[{
               xtype: 'multiselect',
               fieldLabel: 'Multiselect<br />(Required)',
               name: 'multiselect',
               width: 250,
               height: 200,
               allowBlank:false
              
           }]

});
}
</script>
</head>
<body>
  <div id="multiselect"></div>
   
<table>
<tr>
<td><div id="tree_div" style="overflow:auto; height:300px;width:300px;border:1px solid #c3daf9;"></div></td>
<td><div id="grid" style="overflow:auto; height:300px;width:450px;"></div></td>
</tr>
</table>
   
</body>
</html>
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Ext中拖拽Tree2Grid , 清空表格拖拽失效的解决办法>.<

    NULL 博文链接:https://2o12.iteye.com/blog/1169874

    ExtJS4官方指南翻译:DragandDrop拖放/Grid组件/Tree组件/容器与布局

    ExtJS4官方指南翻译:DragandDrop拖放/Grid组件/Tree组件/容器与布局

    ext.net-extjs

    再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件...

    Ext 开发指南 学习资料

    2.11.2. 再看怎么在表格里拖动行 2.11.2.1. 无用功 之 同一个表格里拖拽 2.11.2.2. 无间道 之 从这个表格拖到另一个表格 2.11.2.3. 无疆界 之 从表格里拖到树上 2.12. 大步流星,后台排序 2.13. grid与右键菜单 3. ...

    Ext js 教程大全

    再加上可编辑grid,添加新行,删除一或多行,提示脏数据,推拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件里...

    EXT2.0中文教程

    9.2. 带全选的checkbox树形CheckBoxTree 9.3. 带全选的checkbox的grid 9.4. fisheye 9.5. 可以设置时间的日期控件 9.6. JsonView实现用户卡片拖拽与右键菜单 9.7. 下拉列表选择每页显示多少数据 10. 撕裂吧!...

    Ext Js权威指南(.zip.001

    7.5.11 树节点:ext.data.nodeinterface与ext.data.tree / 364 7.5.12 store的方法 / 366 7.5.13 store的事件 / 368 7.5.14 store管理器:ext.data.storemanager / 369 7.6 综合实例 / 369 7.6.1 远程读取json...

    深入浅出Ext JS

     再加上可编辑grid,添加新行,删除一或多行,提示脏数据,推拽改变grid大小,grid之间推拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件...

    EXT教程EXT用大量的实例演示Ext实例

    9.2. 带全选的checkbox树形CheckBoxTree 9.3. 带全选的checkbox的grid 9.4. fisheye 9.5. 可以设置时间的日期控件 9.6. JsonView实现用户卡片拖拽与右键菜单 9.7. 下拉列表选择每页显示多少数据 10. 撕裂吧!...

    Ext js-2.0 带API

     再加上可编辑grid,添加新行,删除一或多行,提示脏数据,推拽改变grid大小,grid之间推拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件...

    自己用ssh2 和 ext 做的简单oa

    可以把grid直接拖到tree,不同于其他的例子,拖动grid后会在tree中加一个叶子节点,大家试下就会明白。 自己练习用的哦,做的不好不要骂我,哪里不好希望大家包涵。 本人qq :784027965 大家学习happy哈^_^

    EXTJS 3.0中文版文档+实例

    再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件...

    ExtJS 4.2.0

    再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件里...

    EXTJS 3.3.1例子

     再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格...

    ExtJsPPt.zip

     再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格...

    掏钱学Ext(完整版) 附全部源码

    9.2. 带全选的checkbox树形CheckBoxTree 9.3. 带全选的checkbox的grid A. 常见问题乱弹 A.1. 怎么查看ext2里的api文档 A.2. 想把弹出对话框单独拿出来用的看这里 A.3. 想把日期选择框单独拿出来用的看这里 ...

    extjs4.0开发技术文档

    再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件里...

    EXTJS开发文档

    再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件里...

    extjs学习 功能丰富,无人能出其右

     再加上可编辑grid,添加新行,删除一或多行,提示脏数据,推拽改变grid大小,grid之间推拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件...

    ExtJs实例代码

    再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件里...

Global site tag (gtag.js) - Google Analytics