如果我將本地數據(一行)添加到現有的jqgrid,$.jgrid.randId()
自動生成的值似乎是錯誤的。我需要新的行ID進一步的行動。jqGrid AddRowData rowId有錯誤的值
var mydata = [
{id: '12', thingy: "abc"},
{id: '34', thingy:"def"},
{id: '56', thingy: 'ghi'}
];
$("#grid").jqGrid({
data: mydata ,
datatype: 'local',
gridview: true,
height: 'auto',
autoencode: true,
rowNum: 3,
colModel: [{
name: 'id',
width: 60,
},{
name: 'thingy',
width: 90,
}],
caption: "Stack Overflow Example",
ondblClickRow: function(rowid) {
console.log(rowid); // print current row id
}
});
$('#UpdateGridButton').click(function(){
var p = $('#grid').getGridParam();
console.log("found gridParamData:", p.data);
if (p.data){
var newData = [
{id: '78', thingy: "jkl"}
];
var rowId = $.jgrid.randId(); // new row ID
$("#grid").jqGrid('addRowData', rowId, newData);
console.log(rowId); // print new row id
}
});
看到這個小提琴&控制檯輸出(2X單擊行):http://jsfiddle.net/quK3s/
你看,如果你添加一個新行,行ID是「jqg1」,但實際上它插入一個一行「jqg2 「(用螢火蟲檢查,如果雙擊該行請參閱控制檯輸出)
任何想法如何解決此問題?或者它是一個錯誤?
正如我在這個問題https://stackoverflow.com/a/9218310/2221820看到的,我認爲該功能是錯誤的,它應該是預增量而不是$.jgrid.guid++
。
有什麼想法?
UPDATE:
我結束了使用
var rowId = $.jgrid.uidPref + (++$.jgrid.guid);
但任何更好的解決方案/想法,將不勝感激。