jQgrid列过滤在单列中不起作用

问题描述 投票:0回答:1

jQgrid表可以正常工作。在最后一行中,我启用了列过滤。其他列中的搜索/过滤工作正常。但无法处理从Status生成的formatter

$('#jqGrid').jqGrid({
    datatype: "local",
    data    : res.data,
    colModel: [
        {
            label : 'Batch No.', name:'batch_no', firstsortorder:'asc'
        },
        {
            label : 'Batch Wt.', name:'expected_batch_wt', formatter:'number', align:'right'
        }
        ,
        // ... 
        // ...

        {
            label : 'Status'
            ,formatter:function (cellvalue, options, rowObject){
                if(condition)
                    status = 'MSG 1';
                else if(condition)
                    status = 'MSG 2';
                else
                    status = 'DEF MSG';
                return status;
            }
            ,align : 'center'
            // ,sortable : false
        }
    ],
    rowNum              : 1000,
    rownumbers          : true,
    pager               : '#jqGridPager',
    caption             : `CURRENT STOCK REPORT`,
    height              : '500px',
    width               : '1500',
    footerrow           : true,
        userDataOnFooter    : true,
    gridComplete        : function(){
        var $grid               = $('#jqGrid'),
            sum_batch_count     = $grid.jqGrid('getCol', 'batch_no', false, 'count'),
            sum_batch_wt        = $grid.jqGrid('getCol', 'expected_batch_wt', false, 'sum');
        $grid.jqGrid('footerData', 'set', { 
            'batch_no'              : sum_batch_count,
            'expected_batch_wt'     : sum_batch_wt
        });
    }
});

jQuery("#jqGrid").jqGrid('filterToolbar', { stringResult: true, searchOnEnter: false, defaultSearch: "cn" });
javascript jqgrid
1个回答
0
投票

在您的情况下,数据类型是本地的,格式化程序根据条件显示某些值。此值未与您的实际本地数据关联。如果数据类型是本地的,则在本地数据数组中执行搜索-在您的情况下,这是:res.data。由于此数据不包含您新构造的值,因此搜索不返回任何内容。

要解决该问题,一种可能的解决方案是使用unformatter函数。

取决于所使用的jqGrid版本(Guriddo jqGrid,free-jqGrtid,jqGrid <= 4.7),您可以有不同的选择,但是需要知道该版本。我也建议您搜索此站点以解决您遇到的问题。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.