JqGrid Toolbar search -set searchdata в поле вместо прямой публикации данных - PullRequest
1 голос
/ 15 декабря 2011

Мне нужно изменить поведение поиска по умолчанию на панели инструментов фильтра.Документация гласит:

Когда поиск выполнен, массив postData заполняется необходимыми данными для поиска.

Так что если у вас естьсетка с столбцом идентификатора и имени, и вы фильтруете их по столбцам, вы получаете строку запроса, которая выглядит примерно так:

?_search=true&nd=1323976178454&rows=20&page=1&sidx=&sord=asc&id=11&name=jr

То, что я хочу, выглядит примерно так

?_search=true&nd=1323976178454&rows=20&page=1&sidx=&sord=asc&search[id]=11&search[name]=jr

Как это можно сделать?

Редактировать:

Я понял, что если я определю свой colModel следующим образом:

{"name":"search[ID]","label":"id","jsonmap":"ID"}

Он делает то, что я хочу, ноэто кажется хакерским.Есть лучшие решения?

Вот js для моей сетки:

$("#contactsGrid").jqGrid({
    "url":"\/contacts",
    "datatype":"json", ,
    "viewrecords":true,
    "jsonReader":{
        "root":"items",
        "page":"page",
        "total":"total",
        "records":"records",
        "repeatitems":false,
        "id":0
    },
    "colModel":[
        {"name":"ID","label":"id","jsonmap":"ID","searchoptions":[],
            "formatter":"showlink","formatoptions":{"baseLinkUrl":"\/contacts"}},
        {"name":"Name","label":"Name","jsonmap":"Name"}
    ],
    "colNames":["id","name"],
    "pager":"contactsGrid-pager"
}).navGrid("#contactsGrid-pager",
    {"edit":false,"add":false,"del":false,"view":false});

$("#contactsGrid").filterToolbar({"autosearch":true});

1 Ответ

0 голосов
/ 16 декабря 2011

Вы можете использовать stringResult:true для получения результатов более структурированным способом.

$("#contactsGrid").jqGrid('filterToolbar',{stringResult: true, autosearch:true});

Вывод:

_search: true
filters: {"groupOp":"AND","rules":[{"field":"name","op":"bw","data":"jr"}]}
nd: 1323990002421
page: 1
rows: 10
sidx: date_won
sord: desc

Затем вы можете получить массив «filters» ичто вам нужно с этим.

Подробнее о stringResult

Кроме того, я считаю, что проще использовать опцию loadonce: true, поэтому мне вообще не нужно обрабатывать поисковый запрос.Не так настраиваемо, но намного проще.

Подробнее о loadonce

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...