jqGrid子网格的JSON对象

这是关于jqGrid子网格的JSON数据的第3个问题,到目前为止我没有得到任何评论。 请有人帮忙。

我的第一个问题
和第二个

我无法了解jqGrid中子网格使用的json格式。 在我的第二个问题中,我询问了我应该在特定场景中使用的格式

对于给定的图像 在此处输入图像描述

这是正确的JSON字符串吗?

var myJSONObject = { "list": [ { "elementName": "TERM", "attribute": [ { "name": "information", "firstValue": "Required fixes for AIX", "secondValue": "Required fixes for AIX" }, { "name": "name", "firstValue": "PHCO_34", "secondValue": "PHCO_34" }, { "name": "version", "firstValue": "1.0", "secondValue": "2.0" } ], "isEqual": false, "isPrasentinXml1": true, "isPrasentinXml2": false }, { "elementName": "Asian-Core.ASX-JPN-MAN", "attribute": [ { "name": "information", "firstValue": "Man", "secondValue": "Man" }, { "name": "name", "firstValue": "Asian-Core.ASX-JPN-MAN", "secondValue": "Asian-Core.ASX-JPN-MAN" }, { "name": "version", "firstValue": "B.11.23", "secondValue": "B.11.23" } ], "isEqual": false, "isPrasentinXml1": true, "isPrasentinXml2": true } ] }; 

如果是的话,我的第一个问题是我到目前为止所处的位置

 $('#compareContent').empty(); $('
') .html('
'+ '
') .appendTo('#compareContent'); var grid = jQuery("#list2"); grid.jqGrid({ datastr : myJSONObject, datatype: 'jsonstring', colNames:['Name','Result1', 'Result2'], colModel:[ {name:'elementName',index:'elementName', width:90}, {name:'isPrasentinXml1',index:'isPrasentinXml1', width:100}, {name:'isPrasentinXml2',index:'isPrasentinXml2', width:100}, ], pager : '#gridpager2', rowNum:10, scrollOffset:0, height: 'auto', autowidth:true, viewrecords: true, gridview: true, jsonReader: { repeatitems : false, root:"list" }, subGrid: true, /*subGridModel: [{ //subgrid columns names name: ['Name', 'Version', 'Information'], //subgrid columns widths width: [200, 100, 100], //subrig columns aligns align: ['left', 'left', 'left'] }]*/ // define the icons in subgrid subGridOptions: { "plusicon" : "ui-icon-triangle-1-e", "minusicon" : "ui-icon-triangle-1-s", "openicon" : "ui-icon-arrowreturn-1-e", //expand all rows on load "expandOnLoad" : true }, subGridRowExpanded: function(subgrid_id, row_id) { var subgrid_table_id, pager_id; subgrid_table_id = subgrid_id+"_t"; pager_id = "p_"+subgrid_table_id; $("#"+subgrid_id).html("
"); jQuery("#"+subgrid_table_id).jqGrid({ datastr : myJSONObject, datatype: 'jsonstring', colNames: ['Name','Value1','Value2'], colModel: [ {name:"name",index:"name",width:90}, {name:"firstValue",index:"firstValue",width:100}, {name:"secondValue",index:"secondValue",width:100}, ], rowNum:20, pager: pager_id, sortname: 'name', sortorder: "asc", height: 'auto', autowidth:true, jsonReader: { repeatitems : false, root:"attribute" } }); jQuery("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit:false,add:false,del:false}) } }); grid.jqGrid('navGrid','#gridpager2',{add:false,edit:false,del:false});

欢迎任何类型的建议/意见/解决方案。 谢谢

我的输出

在此处输入图像描述

你的代码在myJSONObject变量的声明中有小错误,而创建div#compareContent的包含的代码div#compareContent应固定为

 $('#compareContent').empty(); $('
'+ '
'+ '
') .appendTo('#compareContent');

小的其他语法错误是colModel中的尾随逗号:应删除’]之前的逗号。

现在来看你的主要问题。 您应该将子网格中的datastr : myJSONObject更改为类似的内容

 datastr : myJSONObject.list[0] 

然后修改后的演示将显示数据:见这里 。

您遇到的另一个问题是数据中没有ID。 您应该修改数据的结构,以定义非常网格行和每个子网格行的唯一ID。 您应该考虑到数据中的id将被用作

元素的id,并且HTML不允许在一个HTML页面上具有id重复项。

更新 :请参阅此处修改JSON输入和jqGrid的示例,以便使用ID。

一些可能/不可能锻炼的建议

使用子网格时选择网格为

 var mygrid = jQuery("#mygrid")[0]; 

更换

 var grid = jQuery("#list2"); 

 var grid = jQuery("#list2")[0]; 

参考: http : //www.trirand.com/blog/? page_id = 393 / help / -questions -about-jqgrid-subgrid-and- jsonstring

也将你的json更改为valid json

 { "list": [ { "elementName": "TERM", "attribute": [ { "name": "information", "firstValue": "RequiredfixesforAIX", "secondValue": "RequiredfixesforAIX" }, { "name": "name", "firstValue": "PHCO_34", "secondValue": "PHCO_34" }, { "name": "version", "firstValue": "1.0", "secondValue": "2.0" } ], "isEqual": false, "isPrasentinXml1": true, "isPrasentinXml2": false } ] } 

由www.jsonlint.com证实

您可能会发现以下链接很有用

带有JSON数据的jqGrid将表呈现为空