清除工具栏后,jqGrid searchOperator显示错误的操作符

时间:2017-03-20 16:13:51

标签: javascript jquery jqgrid free-jqgrid

我现在正在使用jqGrid(版本:jqGrid 4.14.1-pre,free jqGrid),其中一列包含searchOperators。

清除工具栏时出现问题。我的默认运算符是"< =(less或equal)"。当我将操作符更改为其他并通过列的x按钮或navGrid的刷新按钮清除工具栏时,searchOperator显示我之前选择的内容,但过滤为"< =",默认值。当我单击运算符以显示下拉弹出窗口时,它会突出显示默认值,即使显示器是不同的运算符,如下图所示。

capture

我提到的

This is demo并不像我的情况那样重置为默认值。但我没有发现它与我之间有任何特殊的区别。 (我不认为自定义searchOperator可能很重要..是吗?) 我发现的是clearToolbar(),但它似乎只重置文本框值。

我不介意在清除之后剩下什么样的操作员,但我想要的只是显示正确的操作符。你能帮我吗?

以下是网格和工具栏代码。

tbLockedPartiesHistoryArea.jqGrid({
        url: '/LockedObjects/GetLockedParties',
        datatype: "json",
        contentType: "application/json; charset-utf-8",
        mtype: 'GET',
        emptyrecords: "There is no locked parties currently.",
        colModel: [
            {label: 'LockedBy',     name: 'LockedBy',       sorttype: 'text',   searchoptions: {clearSearch: true}},
            {label: 'LockedDate', name: 'LockedDate',   sorttype: 'date', searchoptions: {clearSearch: true},
                    sortable: true,
                    resizable: false,
                    hidden: false,
                    search: true,
                    formatter: 'date',
                    formatoptions: {srcformat: 'm/d/Y h:i:s A', newformat: 'm/d/Y h:i:s A'},
                    searchrules: {date: true},
                    searchoptions: {
                        sopt: ["dle", "deq", "ge"],
                        dataInit: function (element) {
                                    var self = this;
                                    $(element).datepicker({
                                        dateFormat: 'mm/dd/yy',
                                        changeYear: true,
                                        changeMonth: true,
                                        showButtonPanel: true,
                                        onSelect: function () {
                                        setTimeout(function () {
                                            self.triggerToolbar();
                                            }, 0);
                                        }
                                    });
                                }
                }
            }],
        rowNum: 20,
        rowList: [20, 30, 50],
        prmNames: {
            page: 'defaultPageNumber',
            rows: 'rowsPerPage'
        },
        customSortOperations: {
            deq: {}, //I will just cut this since the code gets too long
            dle: {},
        },
        forceClientSorting: true,
        rownumbers: true,
        viewrecords: true,
        loadonce: true,
        multiselect: true,
        multiPageSelection: false,
        pager: true,
        searching: {
            searchOperators: true,
            defaultSearch: 'cn',
            closeOnEscape: true,
            searchOnEnter: false,
            multipleSearch: true
        }
    });

    tbLockedPartiesHistoryArea.jqGrid('filterToolbar', {
        ignoreCase: true,
        searchOperators: true,
        enableClear: false
    });
    tbLockedPartiesHistoryArea.jqGrid('navGrid', {
        edit: false,
        add: false,
        del: false,
        refresh: true,
        refreshtext: "Clear Filter",
        refreshtitle: "Clear Filter"
    });

};

1 个答案:

答案 0 :(得分:1)

感谢您提供错误报告!如果使用customSortOperations(描述为here),则存在问题。

我刚刚发布了the commit。请从GitHub获取免费jqGrid的最新来源。现在应该解决这个问题。