`
kinglun
  • 浏览: 40950 次
  • 性别: 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之间的数据拖拽

    NULL 博文链接:https://iamyida.iteye.com/blog/2190441

    Extjs Grid2Grid拖拽

    自己写的一个Extjs Grid2Grid拖拽

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

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

    ExtJS拖拽导入Excel数据

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

    Extjs Portal 拖拽并保存

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

    extjs2.2.1

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

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

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

    ext.net-extjs

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

    EXTJS开发文档

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

    EXTJS 3.3.1例子

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

    extjs3.2 资源包文件

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

    ExtJS(ajax框架) 4.2.1

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

    extjs4.0开发技术文档

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

    ExtJS 4.2.0

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

    Extjs中文文档.pdf

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

    EXTJS 3.0中文版文档+实例

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

    ExtJs实例代码

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

    基于s2sh+Extjs+dwr OA系统带全部JAR

    ssh2的oa系统简单的oa哦 ...可以把grid直接拖到tree,不同于其他的例子,拖动grid后会在tree中加一个叶子节点,大家试下就会明白。 自己练习用的哦,做的不好不要骂我,哪里不好希望大家包涵。

    Extjs grid panel自带滚动条失效的解决方法

    所以当这个scrollbar失效的时候,无论你怎么拖动这个滚动条,grid中的数据永远都不会随scrollbar的移动而展示相应区域的数据(换句话说就是你永远看到的数据都是截图中的这几条record)。 至于为什么gridpanel会失效...

    ssh2 extjs oa

    可以把grid直接拖到tree,不同于其他的例子,拖动grid后会在tree中加一个叶子节点,大家试下就会明白。 系统默认用户名密码 都为 admin 自己练习用的哦,做的不好不要骂我,哪里不好希望大家包涵。 本人qq :...

Global site tag (gtag.js) - Google Analytics