jgGrid实现 左移、右移、上移、下移

摘要:
最近在项目需求中通过jqGrid实现表格中的数据:左移、右移、上移、下移和置顶 等操作。
下面记录实现的方法。

下面是代码片段:

右移(其实就是向一个grid容器中插入一行数据):

//这个方法是获取ztree节点内容,插入到grid表中
function BindBtnRightMethod() {
    //获取ztree对象
    var zTreeObj = $.fn.zTree.getZTreeObj("ztreeId");
    //获取光标选中的tree节点
    var selectedNodes = zTreeObj.getSelectedNodes();
    if (selectedNodes.length == 0) {
        $.modalAlert("操作失败!未选中节点。");
        return;
    } else {
        //新增一行
        var data = { KSID:"10", FLKSID:"101", KSMC: "消化科" };
        addRowDataByGridElementId("jqGridId", data);
    }
}

//摘要:
//内容:向grid表中添加一行记录
function addRowDataByGridElementId(id, data) {
 //获取当前grid中的表ID集合
 var jqGrid = $('#' + id);
 var IDs = jqGrid.getDataIDs();
 //定义标量,记录IDs中的rowid的最大值
 var maxId = 0;
 if (IDs.length > 0) {
     for (var i = 0; i < IDs.length; i++) {
         var tmpId = jqGrid.getInd(IDs[i]);
         if (maxId < tmpId) {
             maxId = tmpId;
         }
     }
 }
 //这里是在给新增的rowid自定义一个有序值
 var rowid= maxId + 1;
 //执行新增操作
 jqGrid.addRowData(rowid, data, rowid);
}

左移(其实是从grid表中删除一行):

//摘要:
//内容:按钮左移
function BindBtnLeftMethod() {
  //删除选中行
  var rowid = $("#jqGridId").jqGrid('getGridParam', 'selrow');
  if (rowid == "" || rowid == undefined || rowid == null) {
      $.modalAlert("移除行未选中!");
      return;
  } else {
      var flag = $("#jqGridId").jqGrid("delRowData", rowid);
      if (!flag) {
          $.modalAlert("移除操作失败!");
      }
  }
}

上移:

//摘要:
//内容:按钮上移
function BindBtnUpMethod() {
    var obj = $("#jiGouGridList");
    var IDs = obj.getDataIDs();
    var rowid = obj.jqGrid('getGridParam', 'selrow');
    if (rowid == "" || rowid == null || rowid == undefined) {
        $.modalAlert("未选中行!");
        return false;
    }
    var rowIndex = getRowIndexByRowId(IDs, rowid);
    if (rowIndex == 0) {
        $.modalAlert('已经置顶,不能上移!');
    } else {
        var srcrowid = getRowIdByRowIndex(IDs, rowIndex - 2);
        var rowUpId = getRowIdByRowIndex(IDs, rowIndex - 1);
        var rowData = obj.jqGrid('getRowData', rowid);
        var rowUpData = obj.jqGrid('getRowData', rowUpId);
        //删除当前行
        obj.delRowData(rowid);
        obj.delRowData(rowUpId);
        //新插入一行
        obj.addRowData(rowid, rowData, "after", srcrowid);
        obj.addRowData(rowUpId, rowUpData, "after", rowid);
        //默认再选中新增的这个行
        obj.setSelection(rowid);
    }
}

//摘要:
//内容:根据rowid,获取索引值
function getRowIndexByRowId(Ids, id) {
    var index = 0;
    for (var i = 0; i < Ids.length; i++) {
        if (Ids[i] == id) {
            index = i;
        }
    }
    return index;
}

//摘要:
//内容:根据索引值获取rowid值
function getRowIdByRowIndex(Ids, index) {
    var rowid = "";
    for (var i = 0; i < Ids.length; i++) {
        if (i == index) {
            rowid = Ids[i];
        }
    }
    return rowid;
}

下移:

//摘要:
//内容:按钮下移
function BindBtnDownMethod() {
    var obj = $("#jqGridId");
    var IDs = obj.getDataIDs();
    var rowid = obj.jqGrid('getGridParam', 'selrow');
    if (rowid == "" || rowid == null || rowid == undefined) {
        $.modalAlert("未选中行!");
        return false;
    }
    var rowIndex = getRowIndexByRowId(IDs, rowid);
    if (rowIndex == (IDs.length - 1)) {
        $.modalAlert('已经置底,不能下移!');
    } else {
        var srcrowid = getRowIdByRowIndex(IDs, rowIndex - 1);
        var rowDownId = getRowIdByRowIndex(IDs, rowIndex + 1);
        var rowData = obj.jqGrid('getRowData', rowid);
        var rowDownData = obj.jqGrid('getRowData', rowDownId);
        //删除当前行
        obj.delRowData(rowid);
        obj.delRowData(rowDownId);
        //新插入一行
        obj.addRowData(rowDownId, rowDownData, "after", srcrowid);
        obj.addRowData(rowid, rowData, "after", rowDownId);
        //默认再选中新增的这个行
        obj.setSelection(rowid);
    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值