2012-03-20 10 views
0

フロントエンドをsearchStringのを取得する方法:jqGridとASP.NETに

$("#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"]; 
私は "jqGridHandler.ashx" で searchStringを取得したいと思い

が、私それが ""見つかりました する方法?誰も私を助けることができますか? tks!

答えて

2

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); 
    } 

それはパラメータsearchStringsearchFieldsearchOperは(あなたがmultipleSearch: trueオプションを設定しない)ユーザーがsingle searching dialogを使用している場合にのみ設定されることが重要ですAdvanced Searching dialogの場合、パラメータfiltersが使用されます。ユーザーが検索ダイアログを使用しない場合、対応するパラメータ(searchString,searchFieldsearchOperまたはfilters)はnullになります。