2014-03-05 58 views
0

使用下面是我的jqGrid初始化:的jqGrid POSTDATA空當ajaxGridOptions

  jQuery("#dataGrid").jqGrid({ 
      jsonReader : { 
       root:"rows", 
       page: "page", 
       total: "total", 
       records: "records", 
       cell: "", 
       id: "0" 
      }, 
      postData: { 
      page: function() { return page; } 
      }, 
      url: 'WebService.asmx/GetData', 
      datatype: "json", 
      mtype: "POST", 
      ajaxGridOptions: { 
       contentType: "application/json; charset=utf-8" 
      }, 
      serializeGridData: function (data) { 
       return JSON.stringify(data); 
      }, 
      colNames: [<%= colName %>], 
      colModel: [<%= colModal %>], 
      rowNum: 10, 
      rowList: [10, 20, 30], 
      pager: '#dataGrid_Pager', 
      sortname: 'name', 
      viewrecords: true, 
      sortorder: "name", 
      caption: "JSON Example" 
     }); 

沒有顯示在網格中的數據沒有問題。但是,在我的Web服務中,postData是空的。即,context.request.form(0)是空的。

當我刪除這個從代碼:

ajaxGridOptions: { 
       contentType: "application/json; charset=utf-8" 
      }, 

POSTDATA包含此當我添加一個手錶context.request.form(0):

{"page":1,"_search":false,"nd":1394031676148,"rows":10,"sidx":"name","sord":"name"} 

但現在,網格空沒有網格數據。

似乎postData與ajaxGridOptions衝突嗎?

任何人都可以提醒?我需要他們兩個一起工作。

謝謝!

+0

任何人都可以幫忙嗎?謝謝。 – user3375530

回答

0

解決了我的問題。對新手而言很抱歉。

將內容設置爲json後,將不會有發佈數據。 JSON回覆實際上是在context.request.inputStream中。

您可以通過以下將其轉換爲對象取回數據:

Dim jss As New JavaScriptSerializer 
    Context.Request.InputStream.Position = 0 
    Dim sr As New StreamReader(Context.Request.InputStream) 
    Dim jsonString As String = sr.ReadToEnd() 
    Dim jsObj As Object = jss.DeserializeObject(jsonString) 

你將能夠把被公佈在做jsObj(「頁」),jsObj(「_搜索」數據)等...

希望這可以幫助別人。

謝謝。