Как получить jqGrid значение ячейки при редактировании

Я также дразнил бы базу данных и проверил бы, что запросы - то, что Вы ожидали. Существует риск, что тест проверяет несправедливость sql, но это было бы обнаружено в интеграционных тестах

31
задан Gab 21 August 2014 в 20:37
поделиться

6 ответов

Как вы заявили, согласно документации jqGrid для getCell и getRowData:

Не используйте этот метод при редактировании строки или ячейки. Это вернет содержимое ячейки, а не фактическое значение элемента ввода

. Поскольку ни один из этих методов не будет возвращать ваши данные напрямую, вам придется использовать их для возврата самого содержимого ячейки, а затем его синтаксического анализа, возможно, с помощью jQuery. Было бы неплохо, если бы будущая версия jqGrid могла предоставить средства для выполнения части этого синтаксического анализа и / или предоставить API, чтобы сделать его более простым. Но с другой стороны, действительно ли этот вариант использования возникает так часто?

В качестве альтернативы, если вы можете более подробно объяснить свою исходную проблему, могут быть другие варианты.

4
ответ дан 27 November 2019 в 22:20
поделиться

Вы можете использовать getCol для получения значений столбцов в виде массива, а затем индексировать его по интересующей вас строке.

var col = $('#grid').jqGrid('getCol', 'Sales', false);

var val = col[row];
-2
ответ дан 27 November 2019 в 22:20
поделиться

Вот пример базового решения с пользовательской функцией.

    ondblClickRow: function(rowid) {
        var cont = $('#grid').getCell(rowid, 'MyCol');
        var val = getCellValue(cont);
    }

...

function getCellValue(content) {
    var k1 = content.indexOf(' value=', 0);
    var k2 = content.indexOf(' name=', k1);
    var val = '';
    if (k1 > 0) {
        val = content.substr(k1 + 7, k2 - k1 - 6);
    }
    return val;
}
15
ответ дан 27 November 2019 в 22:20
поделиться

try subscribing to afterEditCell event it will receive (rowid, cellname, value, iRow, iCol) where value is your a new value of your cell

-1
ответ дан 27 November 2019 в 22:20
поделиться

Я думаю, что лучшим решением, чем использование getCell, который, как вы знаете, возвращает некоторый html в режиме редактирования, является использование jquery для прямого доступа к полям. Проблема с попыткой синтаксического анализа, как это делаете вы, заключается в том, что он будет работать только для полей ввода (а не для таких вещей, как выбор), и он не будет работать, если вы выполнили некоторые настройки полей ввода. Следующее будет работать с входными данными и элементами выбора и представляет собой только одну строку кода.

ondblClickRow: function(rowid) {
    var val = $('#' + rowid + '_MyCol').val();
}
0
ответ дан 27 November 2019 в 22:20
поделиться

Думаю, расширение этого поможет вам. получение-исходных-данных-строки-из-jqgrid

0
ответ дан 27 November 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: