В каждой подсетке jqgrid отображаются все элементы из данных json - PullRequest
1 голос
/ 28 ноября 2011

Я пытался реализовать простую подсетку в jqgrid, чтобы показывать позиции для счета. Я наконец получил подсетки для заполнения, но каждая подсетка показывает один и тот же список позиций, который фактически является всеми записями в наборе данных.

Я не совсем уверен, как отладить это, но вот некоторые из моих потенциальных идей-

  • Это проблема с тем, как хранилище json отвечает (не) на запросы GET?

  • Это потому, что нигде я не определяю, какое поле в данных подсетки является, так сказать, «внешним ключом».

  • Нужно ли subGridUrl указывать на данные json только с соответствующими данными (не для каждой позиции)

Пример JSON для позиций: order_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);

1 Ответ

1 голос
/ 29 ноября 2011

Я полагаю, что код под URL "/json_url/to_line_items/" не использует параметр id, отправленный jqGrid.Если пользователь развернет подсетку, в качестве дополнительного параметра subGridUrl будет использован идентификатор строки.Кстати, я не понимаю, почему вы используете id значения сетки, в качестве order_id.В настоящее время параметр id=1 будет добавлен к subGridUrl в случае расширения строки с помощью order_id=10.Это то, что вы хотите?

...