私はjqueryを初めて使用し、特にjqGridとそのサブグリッドを使用した経験がありません.
単純なグリッドが機能するようになりましたが、実際には subGrid が必要です。グリッドに「連絡先」を表示しています。各連絡先には、関連する「アクション」があります。サブグリッドに表示される「アクション」が必要です。
以下は、ビューに戻ってくる json で、関連付けられた「アクション」を持つ「連絡先」があります。「連絡先」オブジェクトには、「アクション」オブジェクトのリストがあります。
{
"total" : "10",
"page" : "1",
"records" : "78",
"rows" : [ {
"comment" : null,
"givenName" : "Contact A",
"familyName" : "A",
"actionSet" : [ {
"actionID" : 1,
"actionDueDate" : "2012-12-08",
"actionNote" : "Action 1"
}, {
"actionID" : 2,
"actionDueDate" : "2012-12-08",
"actionNote" : "Action 2"
} ],
"contactID" : 1,
"streetName" : null,
"city" : null,
"streetAddress" : null,
"postalCode" : null
} ...]
}
グリッドには、JSON を取得して取得する URL がありますが、これで問題ありません。
jq("#grid").jqGrid({
url:'/getrecords.do',
datatype: 'json',
mtype: 'GET',
私が混乱しているのは、既存のJSONからサブグリッドのデータを取得する方法です(各「連絡先」に関連付けられた「アクション」がjsonで返されるため).
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("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>");
jQuery("#"+subgrid_table_id).jqGrid({
url:"/getrecords.do"+row_id,
datatype: "xml",
どんな助けでも大歓迎です。
アドフォよろしく。