JqG​​rid本地数据自定义验证失败

时间:2014-05-21 21:30:01

标签: javascript jquery jqgrid

我有一个jqgrid的实现,它有一个检查重复单元格条目的方法。此方法是editrules中定义的自定义验证方法的一部分。它似乎工作正常,但一旦我从网格中删除行, $ grid.jqGrid('getGridParam','_ index'); 似乎搞砸了。我正在进行本地删除,如下所示:

    delSettings = {
        onclickSubmit: function (options) {
            var gridId = $.jgrid.jqID($grid[0].id),
                gridP = $grid[0].p,
                newPage = gridP.page,
                rowids = gridP.multiselect ? gridP.selarrrow : [gridP.selrow],
                reloadLastPage = false;

            options.processing = true; // - reset the value of processing option which could be modified

            $.each(rowids, function () {  // - delete selected rows
                $grid.delRowData(this);
            });

这是相关的方法,其目的是检查具有重复条目的行,跳过正在编辑的行(selectedRowId)。

function IsIDImagePathUnique(imagePath) {
    var status = true,
    $grid = $('#list'),
    selectedRowId = $grid.jqGrid('getGridParam', 'selrow'),
    gridData = $grid.jqGrid('getGridParam', 'data'),
    idsToDataIndexes = $grid.jqGrid('getGridParam', '_index');

$.each(idsToDataIndexes, function (id, index) {
    if (_editType === 'edit' && id === selectedRowId) // - skip edited row
        return true;

    if( gridData[index].IDImage === imagePath ) {
        status = false;
        return false;   // - break
    }
});
return status;

}

帮助或评论赞赏。

更新: 我仍然需要弄清楚我的问题是什么,但我想出了一个解决方法,以避免使用 $ grid.jqGrid('getGridParam','_ index');

function IsIDImagePathUnique(imagePath) {
var status = true,
    $grid = $('#list'),
    gridData = $grid.jqGrid('getGridParam', 'data'),
    allowed = _editType ? 1 : 0,
    counter = 0;

for (var i = 0; i < gridData.length; i++) {
    if (gridData[i].IDImage === imagePath && ++counter > allowed) {
        status = false;
        break;
    }
}
return status;

}

0 个答案:

没有答案