应用过滤器时,jqGrid不会在dblClickRow事件上升

时间:2014-12-09 19:32:43

标签: javascript jquery jqgrid

这是在输入时调用过滤事件:

$("#txtPickItem").change(function (e) { doSearchPick(); });

这是我的jqGrid:

$("#gridChooseItems").GridUnload();
jQuery("#gridChooseItems").jqGrid({
    url: 'MyURL', datatype: "JSON",
    colNames: ['id', 'Group', 'Source order'...],
    colModel: [
        { name: 'del', index: ' ', width: 28, hidden: true },
        { name: 'id', index: 'id', hidden: true },
        { name: 'Group', index: 'Group', hidden: true },
        { name: 'Code', index: 'Code', width: 180 }...
    ],
    loadComplete: function () { if ($("#txtPickItem").val()) { setTimeout('doSearchPick();', 100); } },
    rowNum: 25, rowList: [10, 25, 50, 100, 200],
    pager: '#pagerChooseItems',
    sortname: 'id',
    ondblClickRow: function (id) { AddItem(id); },
    height: 580,
    width: 1050,
    ignoreCase: true,
    loadonce: true,
    viewrecords: true,
    sortorder: "desc",
    caption: "Available items"
});

我的过滤功能:

function doSearchPick() {
    var grid = $("#gridChooseItems");
    var filter = {
        "groupOp": "AND", "rules":
            [
                { "field": "Supplier", "op": "cn", "data": $("#txtPickItem").val() }
            ]
    };
    grid.jqGrid('setGridParam', { search: true, postData: { filters: filter } });
    grid.trigger("reloadGrid", [{ page: 1 }]);
}

我必须在双击后重新加载网格并应用过滤器,因此之前双击的项目不再在网格中(很多事情发生在中间)。

$("#txtPickItem")为空时,ondblClickRow并且一切正常,过滤效果也很好。

问题是,当某些文本包含在txtPickItem中时,ondblClickRow不会触发,我不明白为什么。我绝望地需要这个ondblClickRow事件。

编辑:

如果$("#txtPickItem")为空

,AddItem函数可以正常工作
function AddItem(id) {
    pData = {}
    pData["ItemID"] = id;

    jQuery.ajax({
        url: 'URL',
        type: "POST",
        dataType: "JSON",
        data: pData,
        success: function (data) {
            if (data == "msg1") {
                PopulatePickGridItems(); //fill some other grid
            }

            else if (data == "msg2") {
                $("#divMsg").html("<ul><li>err1. msg.</li></ul>")
                $('#dlgMsg').dialog('open');
            }
            else {
                $("#divMsg").html("<ul><li>err2. msg.</li></ul>")
                $('#dlgMsg').dialog('open');
            }
        }
    });
}

0 个答案:

没有答案