我是jquery的新手,特别是没有使用jqGrid及其子网格的经验。
我已经让简单的网格工作,但我真的需要一个子网格。我在网格中显示"联系人",对于每个联系人,都有相关的"操作"。我需要"动作"出现在子网格中。
以下是返回到视图的 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
} ...]
}
网格有一个 url 去获取 JSON,这很好。
jq("#grid").jqGrid({
url:'/getrecords.do',
datatype: 'json',
mtype: 'GET',
我感到困惑的地方是如何从现有的 JSON 中获取子网格的数据(因为与每个"联系人"关联的"操作"在 json 中返回),而不是进行另一个 url 调用,例如。
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",
任何帮助将不胜感激。
问候阿多福。
在调用jqGrid时,您需要传递选项"subGrid: true"以及带有不适当参数的"subGridModel"选项来进行映射。
jq("#grid").jqGrid({
url:'/getrecords.do',
datatype: 'json',
mtype: 'GET',
subGrid: true,
subGridModel: {
// Your Mapping Here
}
.
.
.
取自这里: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:subgrid