`
Robin1320
  • 浏览: 38731 次
  • 性别: 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 , 清空表格拖拽失效的解决办法>.<

    本文将深入探讨一个具体的使用场景——如何实现从Tree组件到Grid组件的拖拽功能,并解决在清空Grid后拖拽功能失效的问题。这个问题在实际开发中可能会遇到,尤其是在需要动态管理数据的界面中。 首先,EXTJS的Tree...

    Ext拖动实例树和表格全 超实用

    通过对Ext JS中树(Tree)和表格(Grid)控件拖拽功能的研究,我们可以看到其实现的核心在于正确配置拖动源和目标对象的相关属性,并利用`DragSource`和`DropTarget`这两个关键类来实现整个拖拽流程。掌握了这些原理和...

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

    在"ExtJS4官方指南翻译:DragandDrop拖放/Grid组件/Tree组件/容器与布局"中,我们将会探讨以下几个核心概念: 1. **Drag and Drop(拖放)**: ExtJS4提供了完善的拖放支持,允许用户通过鼠标操作在界面上移动元素...

    EXT 控件拖动例子

    这个设计器可能使用了`Ext.grid.Panel`或`Ext.tree.Panel`来展示可用的控件库,而工作区则使用了某种布局管理器来处理控件的放置。 为了实现控件的拖放,开发者通常还需要处理一些细节,例如: 1. **阻止默认...

    Ext实现的拖拽树和表格之间的拖拽

    在本文中,我们将深入探讨如何使用ExtJS框架实现拖拽功能,特别是在树形视图(Tree)和表格视图(Grid)之间的交互。ExtJS是一个强大的JavaScript库,它提供了丰富的用户界面组件,包括可拖拽的元素,这使得在Web...

    Ext拖动实例树和表格全

    根据提供的信息,我们可以深入探讨Ext JS中的拖动功能,特别是针对树(Tree)和表格(Grid)的拖动操作。本文将详细介绍这些概念和技术要点。 ### 一、Ext JS 拖动的基本概念 #### 1.1 拖动源与目标 在Ext JS中,拖动...

    ext treegrid

    Ext TreeGrid是一款在Ext JS框架下开发的组件,它结合了Tree和Grid的优点,提供了一种既能展示层次结构数据又能进行表格样式的显示和操作的视图。在Ext JS库中,Tree通常用于展现层级关系的数据,而Grid则用于显示二...

    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表格控件里...

    Ext js-2.0 带API

     再加上可编辑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实现动态树

    var tree = new Ext.tree.TreePanel({ layout: "fit", title: "管理文档&lt;/center&gt;", split: true, width: 200, height: 650, animate: false, enableDD: true, collapsible: true, autoScroll: true, root...

    前端开发Extjs入门-tree

    通过EXT组件grid+tree+window.docx文档,你可以学习到如何在EXTJS中集成这三个组件,以及如何与后台SSM框架协作。运行截图.png可能展示了这些组件实际运行的效果。role文件可能包含了角色和权限的相关配置信息。学习...

    深入浅出Ext JS

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

    extjs表格Grid比较全面的功能

    ExtJS Grid支持拖放功能,用户可以调整列顺序,或者将数据行拖动到不同的组或位置。 11. **组合列(Grouping Columns)** 数据可以按需分组,显示折叠/展开的层次结构,方便用户查看和操作数据。 12. **树形Grid...

    Ext表格控件和树控件

    var grid = new Ext.grid.GridPanel({ renderTo: "hello", title: "NetJava表格测试", height: 150, width: 600, columns: [ { header: "项目名称", dataIndex: "name" }, { header: "开发团队", dataIndex:...

    自己用ssh2 和 ext 做的简单oa

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

    EXTJS 3.0中文版文档+实例

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

Global site tag (gtag.js) - Google Analytics