在调用 addRowData 时空行被附加到 JQGrid
Empty rows are getting appended to JQGrid on calling addRowData
我正在以这种方式使用 JQgrid,
HTML:
<table id="grid"></table>
<input type="button" id="UpdateGridButton" value="Update" />
我最初以这种方式将 JSon 字符串 'mydata ' 加载到 JQgrid,
JavaScript:
var mydata = [{id: 48803, thingy: "DSK1"}, {id:48769, thingy:"APPR"}, {id:12313, thingy: 'FOOBAR'}];
$("#grid").jqGrid({
datastr : mydata,
datatype : 'jsonstring',
gridview: true,
height : '100%',
autowidth : true,
height: 'auto',
autoencode: true,
rowNum: mydata.length,
rownumbers : true,
rownumWidth : 40,
multiselect : false,
viewrecords : true,
autoencode : true,
scrollrows : true,
hoverrows:true,
width: '100%',
shrinkToFit: false,
colNames: ['Inv No', 'Thingy'],
colModel: [{
name: 'id',
index: 'id',
width: 60,
},{
name: 'thingy',
index: 'thingy',
width: 90,
}],
caption: "Stack Overflow Example"
});
它正在运行。
问题是当我尝试以这种方式将更多行附加到现有 JQrid 时,
JavaScript:
$('#UpdateGridButton').click(function(){
newData = [[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"]];
var p = $('#grid').getGridParam();
alert("found gridParamData:", p.data);
if (p.data){
var rowId = $.jgrid.randId();
$("#grid").jqGrid('addRowData', rowId, newData);
console.log(rowId);
/*for (var i = 0; i <= newData.length; i++) {
jQuery("#grid").jqGrid('addRowData', i + 1, newData[i]);
}*/
}
/*for (var i = 0; i <= newData.length; i++) {
jQuery("#grid").jqGrid('addRowData', i + 1, newData[i]);
}*/
});
正在追加行,但它们是空的。
我的数据是这样的数组形式,
newData = [[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"]];
谁能帮我解决这个问题?
谢谢
newData
无效 json 并且需要是 key/value 对,因此您的新数据不正确,请将您的 newData
数组更改为以下:
[{"id" : 462, "thingy":"abc"},{"id" : 462, "thingy":"abc"},{"id" : 462, "thingy":"abc"},{"id" : 462, "thingy":"abc"},{"id" : 462, "thingy":"abc"},{"id" : 462, "thingy":"abc"}];
然后addRowData
,你会发现效果很好。
我正在以这种方式使用 JQgrid,
HTML:
<table id="grid"></table>
<input type="button" id="UpdateGridButton" value="Update" />
我最初以这种方式将 JSon 字符串 'mydata ' 加载到 JQgrid,
JavaScript:
var mydata = [{id: 48803, thingy: "DSK1"}, {id:48769, thingy:"APPR"}, {id:12313, thingy: 'FOOBAR'}];
$("#grid").jqGrid({
datastr : mydata,
datatype : 'jsonstring',
gridview: true,
height : '100%',
autowidth : true,
height: 'auto',
autoencode: true,
rowNum: mydata.length,
rownumbers : true,
rownumWidth : 40,
multiselect : false,
viewrecords : true,
autoencode : true,
scrollrows : true,
hoverrows:true,
width: '100%',
shrinkToFit: false,
colNames: ['Inv No', 'Thingy'],
colModel: [{
name: 'id',
index: 'id',
width: 60,
},{
name: 'thingy',
index: 'thingy',
width: 90,
}],
caption: "Stack Overflow Example"
});
它正在运行。
问题是当我尝试以这种方式将更多行附加到现有 JQrid 时,
JavaScript:
$('#UpdateGridButton').click(function(){
newData = [[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"]];
var p = $('#grid').getGridParam();
alert("found gridParamData:", p.data);
if (p.data){
var rowId = $.jgrid.randId();
$("#grid").jqGrid('addRowData', rowId, newData);
console.log(rowId);
/*for (var i = 0; i <= newData.length; i++) {
jQuery("#grid").jqGrid('addRowData', i + 1, newData[i]);
}*/
}
/*for (var i = 0; i <= newData.length; i++) {
jQuery("#grid").jqGrid('addRowData', i + 1, newData[i]);
}*/
});
正在追加行,但它们是空的。
我的数据是这样的数组形式,
newData = [[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"]];
谁能帮我解决这个问题?
谢谢
newData
无效 json 并且需要是 key/value 对,因此您的新数据不正确,请将您的 newData
数组更改为以下:
[{"id" : 462, "thingy":"abc"},{"id" : 462, "thingy":"abc"},{"id" : 462, "thingy":"abc"},{"id" : 462, "thingy":"abc"},{"id" : 462, "thingy":"abc"},{"id" : 462, "thingy":"abc"}];
然后addRowData
,你会发现效果很好。