我有一个带有自定义格式化程序的动态创建的jqGrid。我需要能够访问格式化程序中不在网格列中的某些信息。我的问题是rowObject似乎只包含列中的信息而没有其他内容,即使JSON数据有额外的属性。
我的JSON看起来像:
{"rows":
[
{"cell":["637","Alice","Test","01\/01\/1980",""],"id":"637","patient_id":"637"},
...
{"cell":["635","Alice","Test","01\/01\/1980",""],"id":"635","patient_id":"635"},
],
"form_id":"3",
"records":"35",
"total":2,
"goto_patient_sidebar":"1",
"totalRecords":"35",
"dynamicFilters":"",
"listName":"Patients",
"page":1,
"recordsReturned":25,
"columns":
[
{"id":"75","field_id":"2","zmr_list_id":"13","alias":"Last Name",
"sortorder":"0","reference_field_id":"90","show_date":"0","show_time":"0"},
{"id":"76","field_id":"1","zmr_list_id":"13","alias":"First Name",
"sortorder":"1","reference_field_id":"90","show_date":"0","show_time":"0"},
{"id":"77","field_id":"25","zmr_list_id":"13","alias":"DOB",
"sortorder":"2","reference_field_id":"90","show_date":"1","show_time":"0"},
{"id":"78","field_id":"47","zmr_list_id":"13","alias":"Phone Number",
"sortorder":"3","reference_field_id":"90","show_date":"0","show_time":"0"}
]
}
对于每一行,我需要从JSON访问patient_id。每行的列数据包含在每行的“单元格”中。 rowObject似乎只包含JSON的每个单元属性中的信息。如何在不在列中呈现的情况下访问patient_id?
答案 0 :(得分:2)
在数据中,patient_id
的值始终与id
相同。我想可以有不同的(如果patient_id
等于id
,您可以看到自定义格式化程序中的信息)。您可以通过至少三种方式实现所需:
hidden:true
),代表patient_id
。您可以在patient_id
数组中的JSON输入中移动有关"cell"
的信息。id
和patient_id
之间的映射信息作为userdata
的一部分放置在JSON中(有关详细信息,请参阅here)。 data
事件句柄的loadComplete
参数。 data
参数将包含从服务器发布的完整 JSON数据。您可以从data
获取所需信息并将其保存在某处。然后,您将从自定义格式化程序中获取已保存的信息。关于您的JSON数据的另一个小评论。目前您使用
之类的项目{
"cell": [
"637",
"Alice",
"Test",
"01\/01\/1980",
""
],
"id": "637",
}
(如果我们忘记了patient_id
)。这意味着您发送两次id
信息:一个作为列的一部分,第二次作为网格的第一列。如果要在第一个网格列的定义中包含key:true
设置并添加jsonReader: {cell:""}
,则可以使JSON数据更紧凑,其中行项目将采用数组形式
[
"637",
"Alice",
"Test",
"01\/01\/1980",
""
]
答案 1 :(得分:0)
为额外数据添加隐藏列。