jqGrid cmTemplate选项会干扰filtertoolbar吗?

时间:2012-06-15 02:11:32

标签: jquery jqgrid

当您注释掉' sopt'以及带有filtertoolbar的选项的网格正常工作。选项,但没有取消注释的选项 我提出jsfiddle here。在我的真实网格中,我在$.extend($.jgrid.defaults,{})之外的所有网格中指定了cmTemplate,但仍会导致同样的问题

$('#Table').jqGrid({
    cmTemplate: {
        searchoptions: {
           // sopt: ['eq', 'ne', 'cn'] //un comment this line then run again and try to use filtere to see the difference
        }
    },
    datatype: 'local',
    data: [{
        Code: 'code1'},
    {
        Code: 'code2'},
    {
        Code: 'code3'}],
    colNames: ['Code'],
    colModel: [{
        name: 'Code',
        index: 'Code'}],
    pager: '#Pager'
}).jqGrid('filterToolbar', {
    searchOnEnter: false,
    defaultSearch: 'cn'
}).trigger('reloadGrid');

1 个答案:

答案 0 :(得分:1)

我没有在代码中看到任何问题。如果你设置

cmTemplate: {
    searchoptions: { sopt: ['eq', 'ne', 'cn'] }
}

您在没有设置的所有列中添加searchoptions.sopt。工具栏过滤每列只能使用一个搜索操作。 jqGrid使用defaultSearch filterToolbar参数进行搜索,但是为了能够对某些列进行另一次搜索操作,可以从searchoptions.sopt数组的第一个操作覆盖它(参见{{3 }} 例如)。 这是非常重要的功能,因为它确实需要。

因此,在所有列中包含searchoptions: { sopt: ['eq', 'ne', 'cn'] }选项几乎会覆盖defaultSearch: 'cn'filterToolbar的选项defaultSearch: 'eq'。完全按照你发布的演示的方式工作。