上篇博客添加行的bug

来源:互联网 发布:网络口碑营销失败 编辑:程序博客网 时间:2024/06/07 04:51


上一篇博客存在bug,经过测试找到了原因,并进行修改

上篇文章的添加行操作:

function addRowData(tableId){ //创建一条空的记录,待编辑var tableObject = $('#'+tableId);//获取表格的初始model   var colModel = tableObject.jqGrid().getGridParam("colModel") ;  var newRow = JSON.stringify(colModel); var ids = tableObject.jqGrid('getDataIDs');  //如果jqgrid中没有数据 定义行号为1 ,否则取当前最大行号+1  var rowid = (ids.length ==0 ? 1: Math.max.apply(Math,ids)+1);  //获得新添加行的行号(为什么是负数呢,与编辑行差别对待)  var newrowid = (0-rowid);  //设置grid单元格不可编辑 (防止在添加时,用户修改其他非添加行的数据)  tableObject.setGridParam({cellEdit:false});   //将新行追加到表格头部   tableObject.jqGrid("addRowData", newrowid,newRow,"first");   //设置grid单元格可编辑(防止追加行后,可编辑列无法编辑)  tableObject.jqGrid('editRow', newrowid, false);  }

如果添加一行记录时没有问题的,添加多条记录就出现问题了
红色部分为修改代码

修改后的代码:

function addWorkGroupLine(){var tableObject = $('#workgroup');    //获取表格的初始model      var colModel = tableObject.jqGrid().getGridParam("colModel") ;      var newRow = JSON.stringify(colModel);     var ids = tableObject.jqGrid('getDataIDs');      //如果jqgrid中没有数据 定义行号为1 ,否则取当前最大行号+1      var rowid = (ids.length ==0 ? 1: Math.min.apply(null,ids)-1);      var rowid = Math.abs(rowid);    var newrowid = (0-rowid);      //设置grid单元格不可编辑 (防止在添加时,用户修改其他非添加行的数据)      tableObject.setGridParam({cellEdit:false});      //将新行追加到表格头部      tableObject.jqGrid("addRowData", newrowid,newRow,"last");      //设置grid单元格可编辑(防止追加行后,可编辑列无法编辑)      tableObject.jqGrid('editRow', newrowid, false);  }


Math.max.apply(Math,ids)+1);  Math.max.apply(Math,ids)+1)是获取最大的记录,添加一条记录记录的id为负值,在添加第二条的时候最大那条记录是不会改变的,添加效果为:

修改后获取最小的记录并取其绝对值这样就不会有问题了

没有经过仔细的测试就发表了博客,在这里向大家道歉,以后会好好测试杜绝类似情况发生。

 

0 0
原创粉丝点击