jqgrid - могу ли я получить доступ к ответу сервера с помощью onSelectRow? - PullRequest
0 голосов
/ 06 декабря 2011

Я получаю ответ JSON от сервера, к которому у меня есть полный доступ к использованию loadComplete.Можно ли получить доступ к ответу JSON с помощью

  1. onSelectRow?
  2. любой другой пользовательской функции, определенной за пределами loadComplete?

1 Ответ

1 голос
/ 06 декабря 2011

Вы можете определить переменную, которая будет хранить последнее состояние ответа JSON, возвращенного с сервера:

var serverData;
$('#list').jqGrid({
    datatype: 'json',
    // ... other parameters
    loadComplete: function (data) {
        serverData = data; // or serverData = data.rows
        // ...
    },
    onSelectRow: function (id) {
        if (serverData) {
            // here you can access serverData, but you need
            // here probably find the item in the serverData
            // which corresponds the id
        }
    }
});

Если у вас есть данные JSON, например, из формы

{
  "total": "xxx",
  "page": "yyy",
  "records": "zzz",
  "rows" : [
    {"id" :"1", "cell": ["cell11", "cell12", "cell13"]},
    {"id" :"2", "cell": ["cell21", "cell22", "cell23"]},
      ...
  ]
}

затем вы можете сохранить в serverData данные не напрямую.Может быть интересно сохранить только cell часть и сохранить ее как значение serverData[id]:

var serverData = [];

$('#list').jqGrid({
    datatype: 'json',
    // ... other parameters
    loadComplete: function (data) {
        var i, rows = data.rows, l = rows.length, item;
        for (i = 0; i < l; i++) {
            item = rows[i];
            serverData[item.id] = item.cell;
        }
        // ...
    },
    onSelectRow: function (id) {
        var item = serverData[id]; // the part of data which we need
    }
});

Если вы используете настройку repeatitems: false в jsonReader, то вы можете сохранить вserverData только часть элементов (выбранных свойств), которые представляли собой строку данных сервера.

В любом случае вам следует сохранить часть информации из параметра data параметра loadComplete в некоторыхпеременная определена вне loadComplete.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...