Как получить searchString в ASP.NET с помощью jqGrid - PullRequest
0 голосов
/ 20 марта 2012

передний конец:

$("#UsersGrid").jqGrid({
    url: "jqGridHandler.ashx",
    mtype: 'post',
    datatype: 'json',
    height: 250,
    colNames: ['CardNumber', 'CardType', 'CardGrade', 'CanUseMoney', 'MemberName'],
    colModel: [
        { name: 'CardNumber', index: 'CardNumber', width: 150, search: true,
            searchoptions: { sopt: ['eq']}},
        { name: 'CardType', width: 150},
        { name: 'CardGrade', width: 150 },
        { name: 'CanUseMoney', width: 150 },
        { name: 'MemberName', width: 150, search: true,
            searchoptions: { sopt: ['eq']} }
    ],
    rowNum: 10,
    rowList: [10, 20, 30],
    sortname: 'CardNumber',
    viewrecords: true,
    sortorder: 'asc',
    caption: 'card',
    pager: $("#pager")
}).navGrid('#pager',
    { search: true, edit: false, add: false, del: false, searchtext: "search" });

jqGridHandler.ashx:

HttpRequest request = context.Request;

string _searchsrt = request["searchString"];

Я хотел бы получить searchString в "jqGridHandler.ashx", но я обнаружил, что это "" как сделать? Может кто-нибудь мне помочь? ТКС!

1 Ответ

2 голосов
/ 20 марта 2012

Вы можете использовать HttpRequest, чтобы получить параметры, которые отправляют jqGrid. Код может быть примерно следующим:

public class jqGridHandler: IHttpHandler {
    public void ProcessRequest(HttpContext context) {
        HttpRequest request = context.Request;
        HttpResponse response = context.Response;

        // get parameters sent from jqGrid
        string numberOfRows = request["rows"];
        string pageIndex = request["page"];
        string sortColumnName = request["sidx"];
        string sortOrderBy = request["sord"];
        string isSearch = request["_search"];
        string searchField = request["searchField"];
        string searchString = request["searchString"];
        string searchOper = request["searchOper"];

        // construct the JSON data based on the 
        string output = BuildJQGridResults (
            Convert.ToInt32 (numberOfRows),
            Convert.ToInt32 (pageIndex),
            Convert.ToInt32 (totalRecords),
            isSearch!= null && String.Compare (isSearch, "true",
                                               StringComparison.Ordinal) == 0,
            searchField,
            searchString,
            searchOper
        );

        response.ContentType = "application/json";
        response.Write (output);
    }

Важно, чтобы параметры searchString, searchField и searchOper были установлены только в том случае, если пользователь использует одиночный диалог поиска (вы не установили опцию multipleSearch: true). Для диалогового окна Advanced Search будет использоваться параметр filters . Если пользователь не использовал диалог поиска, соответствующие параметры (searchString, searchField, searchOper или filters) будут null.

...