以下是我的jqGrid初始化:
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"
},
当我向context.request.form(0)添加一个监视时,postData包含这个:
{"page":1,"_search":false,"nd":1394031676148,"rows":10,"sidx":"name","sord":"name"}
但是现在,网格是空的,没有网格数据。
似乎postData与ajaxGridOptions相冲突?
任何人都可以提供建议吗?我需要他们俩一起工作。
谢谢!
答案 0 :(得分: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(“page”),jsObj(“_ search”)等来获取数据...
希望这有助于某人。
感谢。