栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在JQGrid中映射JSON数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在JQGrid中映射JSON数据

首先,发布的代码有一些错误,例如

dtatype: "json"
而不是
datatype: "json"
。用“
},});
”代替“
}});
”在代码末尾和
colNames: ['Stud Name','Year','Date'.'Number']
代替
colNames:['StudName','Year','Date','Number']
。修复此明显的错误后,您需要更改
jsonmap
值。这是您的主要问题。固定代码如下所示:

jQuery("#"+subgrid_table_id).jqGrid({    ...    datatype: 'json',    colNames: ['Stud Name','Year','Date'.'Number'],    colModel: [        {name:'student_name', width:100, jsonmap:"head.student_name"},        {name:'year', width:100, jsonmap:"head.year"},        {name:'date', width:100, jsonmap:"sub.0.date"},        {name:'number', width:100, jsonmap:"sub.0.number"}    ],    jsonReader: { repeatitems:false, root:"rows" }});

您必须修复

root
为“
rows
”并
jsonmap
JSON点表示法使用
(请参阅http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#json_dot_notation)。我使用了一种奇怪的表示法,如“
sub.0.number
”,因为
sub.0.number
在Javascript中它与
sub[0].number
。现在可以使用了。

我建议您再考虑一下收到的JSON数据的结构。(请参阅我之前对您的评论):“
sub”元素确实是一个始终只有一个元素的数组,还是您想使用子网格?可能应该将数据从更改

sub:[{"":"", ...}]
sub:{"":"",...}
?您想用作行标识符吗?
student_name
?然后将其添加
id:"head.student_name"
jsonReader
定义或将
key:true
属性添加到列的定义
student_name
。还是忘记了将其包含在JSON数据中?

还有最后一个建议。如果打开http://trirand.com/blog/jqgrid/jqgrid.html并在树的左侧打开分支“数据映射”
“数据优化”,您将看到一个仅使用数组而不是命名的示例JSON中的元素。这样的数据将具有最小的大小,并且可以更快地从服务器传输到客户端。相反,您的数据具有一些根本不用的字段(例如“
course_description ”)。因此, 如果可以在服务器 代码中 进行任何更改,请 尝试优化数据传输速率。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/485430.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号