1

請求書の明細を表示するために、jqgrid内に単純なサブグリッドを実装しようとしています。最終的にサブグリッドにデータを入力しましたが、各サブグリッドには同じラインアイテムのリストが表示されています。これは、実際にはデータセット内のすべてのエントリです。

これをデバッグする方法はよくわかりませんが、ここに私の考えられるアイデアのいくつかを示します-

  • jsonストアがGETクエリに応答する(応答しない)方法に問題がありますか?

  • サブグリッドデータ内のどのフィールドがいわば「外国の鍵」であるかをどこにも定義していないからです。

  • 適切なデータのみ(すべてのラインアイテムではない)でjsonデータを指すようにsubGridUrlが必要ですか?

広告申込情報の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スクリプトの該当する部分:

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);
4

1 に答える 1

1

URLの下のコードは、jqGridによって送信されたパラメーター"/json_url/to_line_items/"を使用していないと思います。idユーザーがサブグリッドを展開すると、行の行 ID が の追加パラメーターとして使用されますsubGridUrlidところで、グリッド other の値を として使用する理由がわかりませんorder_id。現在、で行を展開する場合、id=1パラメーターは に追加されます。それはあなたが望むものですか?subGridUrlorder_id=10

于 2011-11-29T11:18:12.433 に答える