This is english version for this post

Why do we need new search panel for jqGrid?



jqGrid has 4 tools for a searching:

  1. The search option for grid footer. You will have icon in footer grid. Then you click this icon, the search dialog will be displayed. Limitations! It has just one field for search. This field is input (text). There is common set of operators.
  2. The following construction
          jQuery("#mysearch").filterGrid("#grid_id",{...})

    It make search bar in mysearch place. Limitations! Panel has static set of controls. User can not add or remove controls from panel. Each condition go to server in separate post-parameters. It is bad for server-side code. Json will be better.

  3. The multipleSearch option for grid footer. It is just like point 1, but here user can add or remove any conditions in dialog. Limitations! All fields are input (text). There is common set of operators for each field.
  4. The search toolbar.
          jQuery("#toolbar").jqGrid('filterToolbar', {stringResult: true});

    Limitations! All fields are input (text). All conditions use logic operator “equal”.

As you see, all search tools have limitations. I made new search tool - smartSearchPanel. It has not such limitations. Далее… »

Tags: ,

Почему возникла необходимость в рассматриваемом компоненте?



Для jqgrid существует 4 вcтроенных механизма фильтрации данных

  1. Опция search:true в параметрах футера грида. Выражается в появлении иконки в футере, по нажатию на которую появляется диалог поиска по одному полю. Минусы в том, что поле только одно, используется текстовое поле для задание искомой величины и набор операторов универсален (общий) для всех полей.
  2. Конструкция
    jQuery("#mysearch").filterGrid("#grid_id",{...})

    Она создает на странице в месте элемента “#mysearch” поисковую панель. Набор полей в панели и элементов управления для них статичен и определяется по colModel или по специальной опции filterModel. Минус в статичности панели (пользователь не может менять набор полей) и в том, что поисковые условия посылаются в отдельных post-параметрах, а не в json-массиве. Это плохо ложится на концепцию универсального источника данных (server-side) для грида. Так же используется только один оператор сравниения для всех условий (равно).

  3. Опция multipleSearch:true футера грида. В футере появляется кнопка поиска, по нажатию на которую появляется диалог. В этом диалоге можно добавлять поисковые условия и объединять их всех условием OR или условием AND. Минус данной возможности в том, что как элемент управления для задания значений поиска используется только текстовое поле. Операторы сравления тоже всегда одинаковые.
  4. Поисковый toolbar.
    jQuery("#toolbar").jqGrid('filterToolbar', {stringResult: true});

    Его минус в использовании тестовых полей и постоянного оператора справления (равно). Все условия объединяются одним только общим (AND).

Как мы видим все 4 механизма поиска имеют ряд недостатков. Эти недостатки и призван решить новый компонент smartSearchPanel.
Далее… »

Tags: ,