Оператор поиска jqGrid Toolbar по столбцам - PullRequest
4 голосов
/ 05 февраля 2011

Я использую jqGrid Filter Toolbar. Я тестирую его с двумя столбцами, один числовой, а другой буквенно-цифровой.

Все операции фильтрации через панель инструментов фильтра выполняются с использованием оператора 'bw' (начинается с).

Как установить операцию, которую я хочу выполнить по столбцу?

В этом случае я хочу выполнить 'eq' для числового столбца и 'cn' для буквенно-цифрового.

Кстати, если я использую диалог расширенного поиска, все работает правильно.

Спасибо!

Вот моя реализация:

$('#EntityListGrid').jqGrid({
    url: '<%= ResolveUrl("~/Controls/EntityManager/Controllers/EntitiesController.ashx?method=GridDataList") %>',
    datatype: 'json',
    mtype: 'GET',
    colNames: ['ID', 'Name', 'Actions'],
    colModel: [
    { name: 'EntityID', index: 'EntityID', width: 50, align: 'left', resizable: true, sortable: true, sopt:['eq'] },
    { name: 'Name', index: 'Name', width: 250, align: 'left', resizable: true, sortable: true },
    { name: 'act', index: 'act', width: 75, sortable: false, search: false },
    ],
    pager: $('#EntityListGridPager'),
    rowNum: 10,
    rowList: [10, 20, 30],
    sortname: 'EntityID',
    sortorder: 'desc',
    viewrecords: true,
    imgpath: '',
    caption: 'Entities',
    width: EntityListGridWidth,
    height: 400,
    gridComplete: function () {
        var ids = jQuery("#EntityListGrid").jqGrid('getDataIDs');
        var editImageUrl = '<%=Page.ResolveUrl("~/Controls/EntityManager/Images/edititem.GIF")%>';
        for (var i = 0; i < ids.length; i++) {
            var cl = ids[i];

            ce = "<img src='" + editImageUrl + "'  onclick='EditEntity(" + cl + "); return false;' />";
            ce2 = "<input type='button' value='details' src='" + editImageUrl + "' onclick='EditEntity(" + cl + "); return false;' />";
            $("#EntityListGrid").setRowData(ids[i], { act: ce2 });
        }
    }
}).navGrid('#EntityListGridPager', { search: true, edit: false, add: false, del: false, searchtext: "Search" }, {}, {}, {}, { closeOnEscape: true, multipleSearch: true, closeAfterSearch: true });

$('#EntityListGrid').jqGrid('filterToolbar', { stringResult: true, searchOnEnter: false });

Ответы [ 2 ]

7 голосов
/ 05 февраля 2011

вы можете использовать свойство sopt в соответствующем определении столбца. Это может быть sopt:['eq'] и sopt:['cn'] в вашем случае. Настройка перезапишет оператор поиска только для выбранного столбца.

Использование свойства sopt:['eq'] иногда действительно необходимо. Например, если у вас есть столбец с параметром stype:'select', edittype:'select', formatter:'select'.

ОБНОВЛЕНО: Правильная настройка searchoptions:{sopt: ['eq']}, а не sopt: ['eq']. Прочитайте документацию об этом.

0 голосов
/ 06 марта 2014

Просто чтобы упомянуть, если вы не хотите потерять другие операнды поиска в нижнем колонтитуле Поиск важно добавить все другие операнды в массив.только первое используется для Toolbarsearch

для phpgrid

$opsmeta = array("cn","eq","bw","ni","in","ne","lt","le","gt","ge","bn","ew","en","nc") ;
$col["searchoptions"] = array("sopt"=>$opsmeta);

Спасибо, что это угощение помогло мне разобраться с некоторыми проблемами поиска

...