`
kinglun
  • 浏览: 42038 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

extjs grid行拖动

阅读更多
Ext.onReady(function(){   
    Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
    var myData = [
        ['1','1','1'],
        ['2','2','2'],
        ['3','3','3'],
        ['4','4','4'],           
        ['5','5','5']
    ];
    var store = new Ext.data.ArrayStore({
        fields: [
           {name: 'a'},
           {name: 'b'},
           {name: 'c'},     
        ]
    });
    store.loadData(myData);
    var grid = new Ext.grid.GridPanel({
        store: store,
enableDragDrop: true,
        dropConfig: {appendOnly:false},
        ddGroup: "GridDD",
        columns: [
            {id:'a',header: 'a', width: 100, dataIndex: 'a'},
            {header: 'b', width: 100, dataIndex: 'b'},
            {header: 'b', width: 100, dataIndex: 'c'}
        ],
        height: 1000,
        width: 300      
    });
    grid.render('grid');//页面有一个div的id是“grid”
alert(grid.getView().mainBody);
var ddrow = new Ext.dd.DropTarget(grid.getView().mainBody, {     
            ddGroup: 'GridDD', 
            copy:false, 
            notifyDrop : function(dd, e, data) { 
                var sm = grid.getSelectionModel(); 
                var rows = sm.getSelections(); 
     
                var cindex = dd.getDragData(e).rowIndex;
                if (cindex == undefined || cindex < 0){ 
                    e.cancel=true; 
                    return; 
                } 
                for (i = 0; i < rows.length; i++) { 
                    rowData = store.getById(rows[i].id); 
                    if (!this.copy) { 
                        store.remove(store.getById(rows[i].id));  
                        store.insert(cindex, rowData);            
                    } 
                }
            } 
        });

});


html页面有个div  id为grid   同时将ext-all.css、ext-base.js、ext-all.js还有这个文件导入







//项目中具体应用
projectGrid.on('releteToLayer', function(id,projectName){
var authLayerToProjectSettingWindow = new Ext.ux.agsupport.AuthLayerToProjectSettingWindow({id:'authLayerToProjectSettingWindow', title:projectName,userId:userId,projectId:id});
authLayerToProjectSettingWindow.show();
// 数据加载提示
var myMask = new Ext.LoadMask(Ext.getBody(), {msg:"数据加载中,请稍候..."});
myMask.show();
function hideMask(){
myMask.hide();
}
setTimeout(hideMask, 1200);

//综合专题中的“图层”拖拽排序
new Ext.dd.DropTarget(Ext.getCmp("projectAuthLayerGrid").el, {     
            ddGroup: 'GridDD', 
           copy    : false,
            notifyDrop : function(dd, e, data) {
                var rows = Ext.getCmp("projectAuthLayerGrid").getSelectionModel().getSelections(); 
                var index = dd.getDragData(e).rowIndex;
                if (index == undefined || index < 0){ 
                    e.cancel=true; 
                    return; 
                } 
                for (i = 0; i < rows.length; i++) { 
                    if (!this.copy) { 
                        Ext.getCmp("projectAuthLayerGrid").getStore().remove(rows[i]);  
                        Ext.getCmp("projectAuthLayerGrid").getStore().insert(index, rows[i]);            
                    } 
                }
            }
});
});
分享到:
评论

相关推荐

    ExtJS5学习之Grid与Grid之间的数据拖拽

    在"ExtJS5学习之Grid与Grid之间的数据拖拽"这个主题中,我们将深入探讨如何实现这种交互功能,以及背后的机制和重要知识点。 首先,我们要了解ExtJS的Grid组件。Grid是一种可配置的表格视图,它可以显示大量的结构...

    Extjs Grid2Grid拖拽

    "Grid2Grid拖拽"功能是指在两个ExtJS Grid之间通过鼠标拖放操作来移动或复制行数据。这种功能在数据管理、比较和操作场景中非常实用。 在实现"Extjs Grid2Grid拖拽"时,主要涉及以下几个关键知识点: 1. **ExtJS ...

    Ext.net实现GridPanel拖动行、上移下移排序功能DEMO

    对于GridPanel中拖动选中行排序的实现,网上有不少ExtJs实现的例子,但是没有找到使用Ext.net实现的,正好最近有个需求要使用,干脆来写一个。 DEMO功能说明: 1、拖动GridPanel选中行到新位置排序。 2、在拖动结束...

    extjs中设置grid默认行高及换行

    Extjs 中想改变grid 行高,如果只是简单的设置了height的值是可以实现grid 的行高,但是如果使用了插件:rowexpander ,最出现新的问题。 感兴趣的朋友可以试试的。 此文档可以解决你的烦恼,为了找到资源下载,...

    Extjs4实现两个GridPanel之间数据拖拽功能具体方法

    在实际开发中,可能还会结合其他组件和配置,比如Ext.grid.plugin.DragDrop来实现更为复杂的拖拽逻辑。例如,可能需要加入排序功能,此时会使用到拖拽排序插件,或者在拖拽过程中会有动画效果,那么需要使用拖拽动画...

    extjs表格Grid比较全面的功能

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

    ExtJS拖拽导入Excel数据

    用户可以从excel中选中要导入的数据,直接拖拽到grid中

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

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

    实现extjs4 的树、grid、form、query等大部分组件的功能

    EXTJS4中的网格可以配合各种插件,如行编辑、列拖动、导出Excel等,以满足不同需求。数据与网格通过store进行绑定,可以通过proxy设置数据源,如Ajax或内存数据。 表单(Form)组件是EXTJS用于收集和展示用户输入的...

    Extjs Portal 拖拽并保存

    Extjs Portal 拖拽并保存 多个实例,直接运行。

    extjs2.2.1

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

    ExtJS介绍以及GridPanel

    3. 创建列模型(ColumnModel):定义GridPanel的列,包括列的标题、数据字段绑定、宽度等,例如`Ext.grid.ColumnModel`。 4. 实例化GridPanel:配置GridPanel的各种属性,如高度、宽度、是否可拖动列等,然后将...

    ext.net-extjs

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

    EXTJS教材,教程

    - **与其他组件交互**:Grid之间以及与Tree组件之间的拖拽操作也是EXTJS的一大亮点。 2. **EXTJS Grid Panel的实现** - **ColumnModel**:定义了Grid的列结构,是构建Grid的基础。例如,创建一个包含编号、名称和...

    EXTJS开发文档

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

    EXTJS 3.3.1例子

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

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

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

    ExtJS(ajax框架) 4.2.1

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

    Extjs 合并单元格

    标题中的“Extjs 合并单元格”指的是在Ext JS框架下实现表格(Grid)中单元格的合并功能。Ext JS是一个强大的JavaScript库,专用于构建富客户端Web应用,其核心组件之一就是数据网格(Data Grid),用于展示大量结构...

Global site tag (gtag.js) - Google Analytics