サブグリッドにデータを入力しようとしていますが、うまくいきません。問題は、同じ URL から生成されたデータを表示する必要があることだと思います。ネストされたデータです。データはjsonです。例を探してみましたが、jsonreader の必要性を指定しているものもあれば、完全に省略しているものもあります。私はjqueryとjgridに非常に慣れていません。アイテム展開時にヘッダーフィールドを表示させたい。サーバーから取得したデータは次のとおりです。
{"total":18,"page":1,"records":18,"rows":[
{"Name":"Jane", "Header":[{"Type":"bundle","Selected":"true"}]}
ここでは、サブグリッドのヘッダーに情報を表示する必要があります。メイン グリッドには、「行」に情報が表示されます。各「行」には、ユーザーがクリックしたときに表示する必要があるヘッダー情報があります。[オブジェクト オブジェクト] のような表示が得られましたが、何かが足りないと思います。配列を解析して情報を表示する必要があります: Type と Selected。 http://www.trirand.com/blog/?page_id=393/help/subgrid-from-nested-master-grid-data/はまさに私が探しているものです。
どんなポインタでも大歓迎です。
以下は私のコードのスニペットです:
$("#grid").jqGrid({
url: '/requestData',
datatype: "json",
colNames:['ID', 'Name'],
colModel:[
{name:'ID',index:'ID',sorttype:'int'},
{name:'Name',index:'Name', width:450}
],
jsonReader : {
repeatitems:false,
root: 'rows'
},
loadonce:true,
viewrecords: true,
autowidth: true,
height: 400,
rowNum:999,
subGrid: true,
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" : false
},
subGridRowExpanded: function(subgrid_id, row_id) {
var subgrid_table_id;
subgrid_table_id = subgrid_id+"_t";
$("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'>");
jQuery("#"+subgrid_table_id).jqGrid({
url: '/requestData',
datatype: "json",
colNames: ['Header'],
colModel: [{
name:"Header",index:"Header"}
],
jsonReader: { repeatitems:false,
root: "rows" },
loadonce: true,
viewrecords: true,
rowNum: 999,
autowidth: true,
sortorder: "asc",
height: '100%'
});
jQuery("#"+subgrid_table_id).jqGrid('navGrid',{edit:false,add:false,del:false})
}
});