jq网格访问额外信息



我有一个动态创建的带有自定义格式化程序的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?

在数据中,patient_id的值始终与id相同。我想可以有不同的(如果patient_id等于id您已经可以看到自定义格式化程序中的信息)。您至少可以通过三种方式实现所需的内容:

  1. 您添加一个隐藏列(具有属性 hidden:true ),它将表示patient_id 。您将有关patient_id的信息移动到 "cell" 数组内的 JSON 输入中。
  2. 您可以将有关idpatient_id之间的映射的信息作为userdata的一部分放置,您将包含在 JSON 中(有关详细信息,请参阅此处)。
  3. 您可以使用loadComplete事件句柄data参数。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",
    ""
]

额外数据添加隐藏列。

最新更新