Поиск в середине столбца по умолчанию в jqGrid с помощью поиска на панели инструментов - PullRequest
4 голосов
/ 31 марта 2011

Прочитав вики jqGrid (и взяв пример из: Поиск без учета регистра в jqGrid, включая скрытые поля ), я не могу найти то, что хочу сделать.

Есть ли опция поиска, чтобы включить поиск в любом месте столбца (автоматически с подстановочными знаками).

Если столбец содержит «Apple Iphone», я смогу найти его с помощью поиска «iphone».

Эквивалент SQL будет select * from table where lower(columnX) like '%iphone%';

Ответы [ 3 ]

18 голосов
/ 04 апреля 2011

Поскольку вы используете панель инструментов поиска , решение вашей проблемы кажется простым. Вы должны:

  1. включает ignoreCase:true в параметры jqGrid
  2. включает defaultSearch:'cn' опцию для вызова filterToolbar . Например: $("#list").jqGrid('filterToolbar', {defaultSearch:'cn'}).
  3. Если вы используете какие-либо элементы выбора на панели инструментов поиска (stype:'select'), вам следует включить в список searchoptions опции sopt, которые начинаются с 'eq': например, stype:'select', searchoptions: {sopt:['eq','ne']}.
1 голос
/ 13 мая 2013
$("#list").jqGrid('filterToolbar', {stringResult: true, searchOnEnter: false, defaultSearch : "cn"});

В приведенном выше примере **defaultSearch : "cn"** используется для поиска по любой подстроке элемента, который вы хотите найти. Удаление defaultSearch : "cn" начинает поиск, начиная с подстроки.

1 голос
/ 31 марта 2011
$(document).ready(function() {
  colNamesData = [ 'Description']

  {name:'description',index:'description', width:130, sorttype:"text", search:true, editable:true, edittype:"textarea", editoptions: {rows:"5",cols:"25",maxlength:"255"}, stype:'text', searchoptions:{sopt:['cn', 'nc', 'bw', 'bn', 'ew', 'en']}},

$("#description_table").jqGrid({
      datatype: "local", 
      height: "auto",
      autowidth: true,
      ignoreCase: true,
      colNames: colNamesData, 
      colModel: colModelHash,
      pager: '#pager',
      rowNum:10,
      rowList:[10,25,50,100],
      sortname: 'date',
      sortorder: 'desc',
      viewrecords: true,
      editurl:"/url_name.json", 
      caption: 'Description'
 data:<%= raw @jqgrid_table.to_json %>
   });

   jQuery("#description_table").jqGrid('navGrid','#pager',{del:false,add:true,edit:false},{}, {modal: true,afterSubmit:processAddEdit,recreateForm:true, afterComplete:reloadJqGrid}, {modal: true}, {multipleSearch:true});  

Теперь, если ваш текст содержит «здесь я иду» и если вы ищете «идти», он, безусловно, будет искать, это работает для меня.

Попробуйте и ответьте, если это не так.

...