代码之家  ›  专栏  ›  技术社区  ›  Chandan

免费jqgrid 4.15.4中的自定义筛选记录

  •  1
  • Chandan  · 技术社区  · 7 年前

    我有一个关于免费jqGrid 4.15.4自定义过滤器的问题。我想实现一个搜索功能,如果我选择“小于但不为null或空”过滤器,那么它应该只显示列不为null或空的记录行。我能够创建自定义过滤器,其中给出'是空'或'是不是空'从 this thread .

    例如,我使用此代码示例创建自定义筛选器:

     customUnaryOperations: ["lne"],
     customSortOperations: {
               lne: {
                    operand: "<!=''",
                    text: "less but not empty",
                    filter: function (options) {
                        var v = options.item[options.cmName];
                        if (v !== undefined && v !== "") {
                            return true;
                        }
                    }
                }
    

    我在搜索选项工具栏中使用的上面的操作符。

    searchoptions: {
                         searchOperators: true,
                         sopt: ['eq', 'lt', 'gt','lne'],
                     }, search: true, 
    

    同时,我不想使用 格式化程序:“整数” here )因为这只会将0分配给所有空记录列单元格,并且在选择时仍在记录中可见 '小于' 过滤器。

    作为参考,我创建了一个 fiddle 其中包括要求和两个图像,以提高清晰度。有人能帮我吗?我希望我能再问一遍。

    先谢谢你。

    Grid_With_NoFiltersIN_SalaryField

    Grid_with_Filter_InSalary_ButEmptyRecords

    1 回复  |  直到 7 年前
        1
  •  1
  •   Oleg    7 年前

    过滤器的代码可以如下所示

    customSortOperations: {
        lne: {
            operand: "<!=''",
            text: "less but not empty",
            filter: function (options) {
                var v = options.item[options.cmName];
    
                if (v !== undefined && v !== "" &&
                        parseFloat(v) < parseFloat(options.searchValue)) {
                    return true;
                }
            }
        }
    }
    

    查看修改后的演示 https://jsfiddle.net/OlegKi/x3fger4z/17/

    推荐文章