В jqgrid, после установки stringResult = true, мои фильтры больше не работают - PullRequest
0 голосов
/ 21 марта 2011

Ранее я использовал базовый фильтр, в котором фильтры будут отображаться в строке запроса URL как

 [Field]=[Value]

Для поддержки более сложной фильтрации я переключил stringResult = true

$("#grid").jqGrid('filterToolbar', { stringResult: true, searchOnEnter: true })

, что замечательно, но у меня есть много страниц, которые я только что понял, сломаны, так как я ранее разослал ссылки, такие как:

http://www.mysite.com/Applications?Team=MyTeam

, что хорошо в том, что фильтр сохраняется как частьURL.В любом случае я могу поддерживать этот тип формата, но все еще использовать stringResult = true поверх этого для поддержки более продвинутого фильтра?

1 Ответ

2 голосов
/ 21 марта 2011

URL-адрес, подобный http://www.mysite.com/Applications?filter=..., также является частью URL.Почему это менее хорошо?

О сломанных старых ссылках. Я не вижу способа там что-либо изменить (нужно знать, где они решаются) или продолжить поддержку компонентами вашего сервера старых параметров в дополнение к stringResult: truestyle.

Еще один способ - использовать перенаправление URL-адресов старых стилей на новые, но реализация очень зависит от используемого вами веб-сервера и технологии, используемой для написания серверных компонентов.

ОБНОВЛЕНО : например, URL-адрес, отправляемый на сервер страницей , является

"http://www.ok -soft-gmbh.com / jqGrid /SearchDataUrl.json? фильтров =% 7B% 22groupOp% 22% 3A% 22% 22 И% 2C% 22rules% 22% 3A% 5B% 7B% 22field% 22% 3A% 22Status% 22% 2C% 22op% 22% 3A% 22Ne% 22% 2C% 22data% 22% 3A% 22Completed% 22% 7D% 2C% 7B% 22field% 22% 3A% 22Status% 22% 2C% 22op% 22% 3A% 22Ne% 22% 2C% 22data% 22% 3A% 22On + Удержание% 22% 7D% 2C% 7B% 22field% 22% 3A% 22Status% 22% 2C% 22op% 22% 3A% 22Ne% 22% 2C% 22data% 22% 3A% 22Cancelled% 22% 7D% 5D% 7D & _search = ложно & й = 1300712766637 & строк = 10 & страница = 1 & sidx = Id & Sord = возрастанию "

если вы расшифруете это в соответствии с неискаженной функцией JavaScript, вы получите следующее:

"http://www.ok -soft-gmbh.com / jqGrid / SearchDataUrl.json? Filters = {\" groupOp \ ":\ "И \", \ "правила \": [{\ "поле \": \ "Статус \", \ "оп \": \ "пе \", \ "данных \": \ "Completed \"}{\ "поле \": \ "Статус \", \ "оп \": \ "пе \", \ "данных \": \ "О + Удержание \"}, {\ "поле \": \»Статус \ "\ "ор \": \ "пе \", \ "данные \": \ "Отменено \"}]} & _ поиск = ложь и й = 1300712766637 & строк = 10 и страница = 1 & sidx = Id & Sord = Asc"

...