所以我有一个网格,里面有2行。
slappy, 1, 10, 100
happy, 2, 20, 200
然后我在网格上过滤并将列表缩小到只有1行
happy, 2, 20, 200
过滤列表中的原始行1 不。
我将“happy”更改为“pappy”并删除过滤器。我现在有;
pappy, 1, 10, 100
happy, 2, 20, 200
因此它更改了第1行第1列,因为在afterSaveCell
方法中,返回的rowId
为1
而不是2
。所以我的代码是
afterSaveCell: function (rowid, cellname, value, iRow, iCol) {
alert(rowid + ":" + iRow);
GRID.GridData[iRow - 1][iCol - 1] = value;
},
总是会失败,因为它正在更改错误行的数据。
对过滤列表进行编辑的方法是什么?
答案 0 :(得分:0)
即使您在列中定义id
并且该列可编辑,jqGrid也不会为您提供编辑行的key: true
属性的任何界面。另一方面,如果将修改包含id的列,则可以自行轻松调整id
属性。例如
afterSaveCell: function (rowid, cellname, value, iRow, iCol) {
if (iCol === iMyKeyColumn) { // iMyKeyColumn is the column which should be
// sync with rowid
// adjust id attribute with new id value
$(this.rows[iRow]).attr("id", value); // if you use idPrefix you should add
// it to value: this.p.idPrefix + value
}
}
通常,允许用户修改id值并不好,因为id必须在HTML页面上是唯一的,并且用户通常不会考虑id重复的问题。