我正在使用Oleg's Free jqGrid 4.15.2。
我有以下HTML测试页
<input type="text" id="edtBarcode" class="barcode" placeholder="Scan Here" />
<table id="grid"></table>
遵循Javascript代码
$(function () {
CreateGrid();
$("#edtBarcode").keypress(function (e) {
if (e.which == 13) {
gridData.push({'barcode': '1234567'});
alert(gridData.length);
CreateGrid();
$("#edtBarcode").focus();
return false;
}
});
});
var gridData = [];
function CreateGrid() {
alert('1: ' + gridData.length);
$('#grid').GridUnload();
$('#grid').jqGrid({
datatype: 'local',
data: gridData,
colNames: ['barcode'],
colModel: [{ name: 'barcode', width: '150px'}],
viewrecords: true
})
alert('2: ' + gridData.length);
}
此代码每次在文本框上按下输入(为了完成此测试而简化)时,都会向gridData添加一个新行。
问题
每次调用$('#grid').GridUnload();
时,gridData中的数据也会被删除。
问题
$('#grid').GridUnload();
重新加载数据的替代方法吗?请注意,在实际场景中,在将数据添加到网格之前有计算和服务器调用。同样在此调用期间,gridData
上的行也可能会被修改(例如,将相同的条形码行组合到一个记录增加的记录中)。
修改
使用CreateGrid(gridData.slice());
代替工作,但我只是将其视为一种解决方法,并希望有更好的方法,而不是在内存中复制数据。