在我上一篇文章中,写了关于jqGrid追加操作列的方法,今天在项目中发现了一个问题:
//在colModel中添加(记得在colNames中加入'操作')
{name:'id',index:'id',align:'center',edittype:'button',formatter:function(cellValue,options,rowData){
//console.log(cellValue);
//console.log(options);
//console.log(rowData);
btnstr="<button class='btn btn-danger' onclick='delRow("+rowData.id+")' >删除</button>";
return btnstr
}}
以上述代码为例,我的实际项目中,我的表格还有双击行弹窗编辑,故我需要传递id值到弹窗层,且要显示双击行的数据,因为我用了layer,所有数据都传过去有点麻烦(我的水平有限),所以选择传id,通过id来查询相关数据。
但是我在进行上面操作时发现,我传过去的id值有问题,后来console才知道,id已经变了。我想应该是这里操作列配置有问题。因为这里用了name:'id',导致return回的值覆盖了原本行数据中id值。
console输出:
id: "<button class="btn btn-danger" onclick="delRow(3)">删除</button>"
故只需将name:'id',改为不存在的字段即可,改动如下:
//在colModel中添加(记得在colNames中加入'操作')
{name:'option',index:'option',align:'center',edittype:'button',formatter:function(cellValue,options,rowData){
//console.log(cellValue);
//console.log(options);
//console.log(rowData);
btnstr="<button class='btn btn-danger' onclick='delRow("+rowData.id+")' >删除</button>";
return btnstr
}}
console输出:
id依旧存在且不变
新增option: "<button class="btn btn-danger" onclick="delRow(3)">删除</button>"
如有错误不足之处,请多回复指正,不甚言谢
网友评论