免费jqGrid清除本地数据

时间:2017-12-04 12:46:24

标签: javascript jqgrid

我正在使用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());代替工作,但我只是将其视为一种解决方法,并希望有更好的方法,而不是在内存中复制数据。

0 个答案:

没有答案