easyUI DataGrid多行上下移动排序,可直接保存到后台

今天遇到这个业务,记录下来,参考至 https://bbs.csdn.net/topics/390641047

1.移动行操作(相对于2只是静态移动)

function move(isUp) {
	var dt=$('#mainTable');
    var selections = dt.datagrid("getSelections");
    if(selections.length == 0){
        return;
    }
    var length = dt.datagrid("getRows").length;
    for(var i = 0; i < selections.length; i++){
        var index ,$i,newIndex;
        if(isUp){
            $i = i;
            index = dt.datagrid('getRowIndex',selections[$i]);
            if(index <= 0)return;
            newIndex = index - 1;
        }else{
            var $i = selections.length-1-i;
            index = dt.datagrid('getRowIndex',selections[$i]);
            if(index >= length-1)return;
            newIndex = index + 1;
        }
        dt.datagrid("deleteRow",index);
        dt.datagrid("insertRow",{index : newIndex,row:selections[$i]});
        dt.datagrid("selectRow",newIndex);
    }
}

2.移动行并且更新列序号,这里更新orderNo排序号(相对于1可以用 getChanges获取到移动过的行,包括序号修改过的行,可以直接保存到后台

function move1(isUp) {
	var dt=$('#mainTable');
    var selections = dt.datagrid("getSelections");
    if(selections.length == 0){
        return;
    }
    var datas = dt.datagrid("getRows");
    var length = dt.datagrid("getRows").length;
    //缓存选中行
    var rowIndexs=[];
    //更新序号,删除行,插入行
    for(var i = 0; i < selections.length; i++){
        var index,$i,newIndex;
        if(isUp){
            $i = i;
            index = dt.datagrid('getRowIndex',selections[$i]);
            if(index <= 0)return;
            newIndex = index - 1;
            //修改序号
            selections[$i].orderNo = parseInt(selections[$i].orderNo) - 1;
            dt.datagrid('updateRow',{ index: newIndex,row: {orderNo : parseInt(datas[newIndex].orderNo) + 1 } });
        }else{
            var $i = selections.length-1-i;
            index = dt.datagrid('getRowIndex',selections[$i]);
            if(index >= length-1)return;
            newIndex = index + 1;
            //修改序号
            selections[$i].orderNo = parseInt(selections[$i].orderNo) + 1;
            dt.datagrid('updateRow',{ index: newIndex,row: {orderNo : parseInt(datas[newIndex].orderNo) - 1 } });
        }
        dt.datagrid("deleteRow",index);
        //插入行
        dt.datagrid("insertRow",{index : newIndex,row:selections[$i]});
        //缓存选中行
        rowIndexs.push(newIndex);
    }
    //重新选择行
    for(var i=0; i<rowIndexs.length; i++){
    	dt.datagrid("selectRow",rowIndexs[i]);
    }
}


function save(){
    //保存数据
    var rows = $('#mainTable').datagrid('getChanges');
//    $.ajax
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值