ExtJs grid可拖拽行

ExtJS可拖拽功能

步骤:
在定义grid的时候设置    enableDragDrop: true 可以拖拽的功能
在定义一个dropTarget
如果获得用户选择了几行;
var rows = data.selections;
得到用户拖动到第几行
var index = dd.getDragData(e).rowIndex;
 var ddrow = new Ext.dd.DropTarget(grid.container, {
        ddGroup : 'GridDD',
        copy    : false,
        notifyDrop : function(dd, e, data) {
            // 选中了多少行
            var rows = data.selections;
            // 拖动到第几行
            var index = dd.getDragData(e).rowIndex;
            if (typeof(index) == "undefined") {
                return;
            }
            // 修改store
            for(i = 0; i < rows.length; i++) {
                var rowData = rows[i];
                if(!this.copy) store.remove(rowData);
                store.insert(index, rowData);
            }
        }
    });
 
< html >
     < head >
         < meta   http-equiv = "Content-Type"   content = "text/html; charset=gbk" >
         < title > 03.grid </ title >
           < link   rel = "stylesheet"   type = "text/css"   href = "../ext3.2/resources/css/ext-all.css"   />
         < script   type = "text/javascript"   src = "../ext3.2/adapter/ext/ext-base.js" ></ script >
         < script   type = "text/javascript"   src = "../ext3.2/ext-all.js" ></ script >
         < script   type = "text/javascript" >
Ext.onReady( function (){
     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({
        autoHeight:  true ,
        renderTo:  'grid' ,
        store: store,
        cm: cm,
        enableDragDrop:  true
     });
     var  ddrow =  new  Ext.dd.DropTarget(grid.container, {
        ddGroup :  'GridDD' ,
        copy    :  false ,
        notifyDrop :  function (dd, e, data) {
             // 选中了多少行
            var  rows = data.selections;
             // 拖动到第几行
            var  index = dd.getDragData(e).rowIndex;
             if  ( typeof (index) ==  "undefined" ) {
                 return ;
            }
             // 修改store
            for (i = 0; i < rows.length; i++) {
                 var  rowData = rows[i];
                 if (! this .copy) store.remove(rowData);
                store.insert(index, rowData);
            }
        }
    });
});
         </ script >
     </ head >
     < body >
       
         < div   id = "grid" ></ div >
     </ body >
</ html >




转载于:https://www.cnblogs.com/babyhhcsy/p/3229951.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值