jqgrid子网每个显示json数据中的所有项目
问题描述:
我一直在尝试在jqgrid中实现一个简单的子网格以显示发票的行项目。我终于得到了子网格,但每个子网格都显示了相同的行项目列表,这实际上是数据集中的所有条目。jqgrid子网每个显示json数据中的所有项目
我不太清楚如何调试这一点,但这里是我的一些潜在ideas-
的是它与JSON店的方式(不)响应GET查询的问题吗?
是不是因为我无处可以定义子网格数据中的哪个字段是“foriegn key”可以这么说。
我需要的subGridUrl指向JSON数据,只有适当的数据(不是每个行项目)
例JSON行项目: ORDER_ID指向订单的ID
{
"total": 1,
"records": 6,
"rows": [
{
"description": "PART X",
"order_id": 2,
"qty": 5,
... more fields ...
"id": 1
},
... more ...
],
page: 1
}
JSON用于主电网项目:
{
"total": 1,
"records": 2,
"rows": [
{
"order_no": 2,
... more fields ...
"id": 2
},
... more ...
],
page:1
}
鸭我jqqrid脚本plicable部分:
jQuery("#mygrid").jqGrid({
... cosmetic stuff for main grid ...
url: "/my_json_url/",
datatype: "json",
colNames:['Order',...],
colModel:[
{name:'order_no', index:'order_no'},
...
],
jsonReader: {
repeatitems:false,
root: "rows",
page: "page",
total: "total",
records: "records",
cell: "",
id: "id",
subgrid: {root: "rows", cell:"", repeatitems: false}
},
prmNames: {subgridid: "order_id"},
subGrid: true,
subGridUrl: "/json_url/to_line_items/",
subGridModel: [{ name : ['qty','description'],
width: [100,100] }]
})navGrid(some options);
答
我假设URL "/json_url/to_line_items/"
下的代码,请不要使用jqGrid的发送id
参数。如果用户展开子网格,则该行的rowid将用作subGridUrl
的附加参数。顺便说一下,我不明白你为什么使用id
其他网格值作为order_id
。目前id=1
参数将被附加到subGridUrl
以扩大与order_id=10
行的情况下。这是你想要的吗?
我可以在firebug中看到,当我单击展开时的调用发送主行的id作为GET请求'?id = value'。在我看来,这只需要'?order_id = value',但我不知道如何更改参数名称。在jsonReader下的子网格参数中将'id'更改为'order_id'似乎没有帮助。 –
@j_syk:要更改'id'名称,您应该使用jqGrid参数'prmNames:{subgridid:“order_id”}' – Oleg
确实将GET请求更改为正确的参数,但数据不是过滤。我以前没有在我的json商店遇到过这个问题......让我捅一下 –