Объект строки jqGrid в onSelectRow - PullRequest
8 голосов
/ 20 октября 2011

Как получить объект строки в строке, выбранной в jqGrid?Мне нужен фактический объект, а не значение ячейки.Я просмотрел документацию, но не смог найти метод, который даст мне объект строки.поскольку я использую собственные средства форматирования, cellValue не будет работать.

Ответы [ 3 ]

10 голосов
/ 21 октября 2011

Если вы внедрили пользовательский форматер и хотите получить значение ячейки в отношении getCell или getRowData , вам нужно реализовать unformat функция также.

Непонятно, что вы имеете в виду под "Мне нужен фактический объект, а не значение ячейки". Также неясно, какой datatype вы используете, используете ли вы опцию loadonce: true или нет, и загружаете ли вы данные с сервера, в каком формате данные будут опубликованы на сервере.

Если вы используете datatype: 'local' или loadonce: true, внутренние параметры data и _index будут заполнены. Чтобы получить необработанные данные из сетки по rowid, вы можете использовать

var rowData = this.p.data[this.p._index[rowid]]

или

var grid = $(this),
    localdata = grid.jqGrid('getGridParam', 'data'),
    indexes = grid.jqGrid('getGridParam', '_index'),
    rowData = localdata[indexes[rowid]];

Если вы не используете datatype: 'local' или не используете loadonce: true и загружаете данные только с сервера, вы можете сохранить объект, представляющий данные из ответа сервера, в переменную (в объекте). Обработчик события loadComplete имеет один параметр data, который представляет собой необработанные данные, отправленные с сервера. Таким образом, вы можете сохранить данные, которые вам нужны, в объекте (на карте, которая будет получать объект по rowid) и использовать его внутри обработчика событий onSelectRow.

3 голосов
/ 04 декабря 2012

в моем проекте:

ondblClickRow : function(rowid,iRow,iCol,e) {
    $($("#completeDetail").getInd(rowid,true)).find(":first").click();
}

Это решило бы увеличение строки, а не поиск строки

используйте эту функцию -> getInd(rowid,rowcontent).

Метод возвращает индекс строки в таблице сетки, заданной id=rowid, когда для параметра rowcontent установлено значение false (по умолчанию).Если для rowcontent установлено значение true, возвращается объект строки ввода.Если rowid не может быть найден, функция возвращает false.

3 голосов
/ 23 мая 2012

Вы можете использовать методы getInd и getLocalRow:

onSelectRow: function(rowid) {
    var row = $(this).getLocalRow(rowid);
    // do something with row
}

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods

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