Множественный поиск по нескольким полям по умолчанию - jquery


1

Итак, есть jqGrid, с объявлением, smth вроде:

$("#grid").jqGrid({
...
bunch of stuff
...
).searchGrid({ multipleSearch: true });

что хорошо, когда я нажимаю кнопку "Поиск", она приносит мне модальную форму, я предполагаю первый столбец и раскрывающийся список sopts: searchoptions: {sopt: [eq, ne, cn]}. Теперь я хочу иметь возможность отображать пару таких полей по умолчанию не только один. Я знаю, что я могу добавить их позже, нажав "Добавить", но я хочу их отображать по умолчанию.

Поиск панели инструментов не является вариантом.

Спасибо заранее,

  •  8
  •  2
  • 8 фев 2020 2020-02-08 08:05:34

2 ответа

0

Вы не можете сделать это, используя API jqGrid. Вместо этого вам нужно будет использовать событие afterShowSearch для вызова функции после отображения диалогового окна поиска. В этой функции вы можете программно добавлять новые строки, устанавливая каждый из них в нужные значения.

1

Посмотрите Поиск панели инструментов. Он отображает одно поле для каждого столбца поиска. Если вы дополнительно используете опцию stringResult:true, вы получите наиболее совместимые результаты в Расширенный поиск. Кстати, вы включаете обе функции Поиск панели инструментов и Расширенный поиск (multipleSearch: true) расширенный диалог поиска будет инициализирован последними результатами поиска из Поиск панели инструментов. Таким образом, у вас будет две или три строки в Расширенный поиск в начале.

ОБНОВЛЕНО. Причина, по которой после использования Поиск панели инструментов диалог с "Расширенный поиск" будет отображаться не пустым, так как оба параметра filters используют postData. Поэтому, если вы инициализируете postData, вы можете получить хорошую отправную точку. Смотрите демо. Вы увидите

alt text

UPDATE: В еще один ответ вы найдете, как удалить последнюю строку диалогового окна поиска (с "Inv No" ), который не являются частью правил поиска из postData.filters.

  • 8 фев 2020 2020-02-08 08:05:35