gpt4 book ai didi

asp.net - jqgrid jsonReader 配置

转载 作者:行者123 更新时间:2023-12-04 05:12:22 26 4
gpt4 key购买 nike

我是 jqgrid 的新手,最后我设置了一个网格。假设我需要设置 jsonReader 以便网格知道在 json 返回中从哪里获取我的网格数据。但是我尝试了几天后得到了空白单元格。

这是我的网格:

jQuery("#list48").jqGrid({
url: 'dbtest.aspx/get_offsite_history2',
datatype: "json",
mtype: 'POST',
ajaxGridOptions: { contentType: "application/json" },
serializeGridData: function(postData) {
return JSON.stringify(postData);
},
jsonReader: {
root: function(obj) { alert(JSON.stringify(obj.d)); return obj.d; },
repeatitems: false
},
height: 'auto',
rowNum: 30,
rowList: [10, 20, 30],
colNames: ['name', 'start_date', 'duration', 'offsite_cat'],
colModel: [
{ name: 'name', index: 'name', width: 80, align: 'left', editable: true, edittype: 'text' },
{ name: 'start_date', index: 'start_date', width: 120, align: 'left', editable: true, edittype: 'text' },
{ name: 'duration', index: 'duration', width: 120, align: 'left', editable: true, edittype: 'text' },
{ name: 'offsite_cat', index: 'offsite_cat', width: 120, align: 'left', editable: true, edittype: 'text'}],
pager: "#plist48",
viewrecords: true,
sortname: 'name',
caption: "Grouping Array Data",
gridview: true
});

这是从 url dbtest.aspx/get_offsite_history2 返回的服务器:
{"d":"[{\"name\":\"A\",\"start_date\":\"B\",\"duration\":\"C\",\"offsite_cat\":\"D\"}]"}

我想通过设置“root:'d'”来得到结果,但我得到了 64 个空白行......

寻找评论...非常感谢

最佳答案

您的问题的原因是您的服务器代码中的错误。您将序列化为 JSON 两次 .反序列化后 d您得到的服务器响应的属性仍然是 JSON 字符串 (!!!) 而不是对象。典型的错误是手动使用 JavaScriptSerializer.Serialize在网络方法中。应该返回 对象 本身而不是作为序列化结果的字符串。

无需修改您当前的服务器代码,您就可以通过使用

jsonReader: {
root: function (obj) {
alert(typeof obj.d === "string" ? obj.d : JSON.stringify(obj.d));
return typeof obj.d === "string" ? $.parseJSON(obj.d) : obj.d;
},
repeatitems: false,
page: function () { return 1; },
total: function () { return 1; },
records: function (obj) {
return typeof obj.d === "string" ? $.parseJSON(obj.d).length : obj.length;
}
}

或(如果您使用 loadonce: true )只是
jsonReader: {
root: function (obj) {
return typeof obj.d === "string" ? $.parseJSON(obj.d) : obj.d;
},
repeatitems: false
}

因为你当前的服务器代码好像没有实现数据的分页你应该增加 rowNum到一些足够大的值,如 rowNum: 10000或使用 loadonce: true .

更新 : 你可以找到 here修改后的演示工作。它显示

enter image description here

alert消息。

关于asp.net - jqgrid jsonReader 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14748169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com