0

当您注释掉“sopt”选项但未注释的选项时,带有以下选项的网格与 filtertoolbar 可以正常工作,我在这里放了一个 jsfiddle。在我的真实网格中,我在所有网格之外指定了 cmTemplate $.extend($.jgrid.defaults,{})- 它仍然会导致同样的问题

$('#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');
4

1 回答 1

1

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

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

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

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

于 2012-06-15T05:37:51.857 回答