У меня есть jqgrid с встроенным редактированием и несколькими замороженными столбцами. Я собрал некоторую информацию о том, как сделать эту работу с here. Ответ в ссылке имеет замороженную колонку, которая является мульти-select. Но я хотел знать, есть ли какой-либо способ или работа, чтобы отредактировать замороженный столбец во встроенном редактировании.Можем ли мы редактировать замороженную колонку в jqgrid
ответ
Я уже давно пытаюсь понять это, и, наконец, смог придумать что-то, что работает для моей ситуации. Надеюсь, вы можете сделать что-то подобное.
Я создал следующую функцию, которая будет вызвана, когда кнопка редактирования щелкнул:
var editRow = function(rowId) {
$('#' + gridId).editRow(rowId);
$('#' + gridId + '_frozen').editRow(rowId);
};
Это позволит сделать замороженные столбцы отображаются редактируемые пользователю.
Я создал следующую функцию, которая вызывается, когда кнопка сохранить щелкает:
var saveRow = function(rowId) {
$('#' + gridId + '_frozen' + ' #' + rowId + ' > td').each(function() {
var col = $(this).attr('aria-describedby');
$('#' + gridId + ' #' + rowId + ' > td[aria-describedby="' + col + '"]')
.children(':first')
.val($(this).children(':first').val());
});
$('#' + gridId).saveRow(rowId);
};
Этот код будет принимать значение от замороженной клетки и скопировать его к нижележащему скрытой клетки - это ячейка, значение которой отправляется при сохранении.
У меня также есть отменить вариант, который вызывает следующий метод:
var cancelRow = function(rowId) {
$('#' + gridId).restoreRow(rowId);
$('#' + gridId + '_frozen').restoreRow(rowId);
};
UPDATE: Я обнаружил, что это решение работает только в IE (8), а не в Chrome или Firefox. Веб-приложение, над которым я работаю, должно быть совместимо только с IE8, но я также попытаюсь найти решение для других браузеров.