2013-05-02 2 views
1

У меня есть jqgrid с встроенным редактированием и несколькими замороженными столбцами. Я собрал некоторую информацию о том, как сделать эту работу с here. Ответ в ссылке имеет замороженную колонку, которая является мульти-select. Но я хотел знать, есть ли какой-либо способ или работа, чтобы отредактировать замороженный столбец во встроенном редактировании.Можем ли мы редактировать замороженную колонку в jqgrid

ответ

0

Я уже давно пытаюсь понять это, и, наконец, смог придумать что-то, что работает для моей ситуации. Надеюсь, вы можете сделать что-то подобное.

Я создал следующую функцию, которая будет вызвана, когда кнопка редактирования щелкнул:

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, но я также попытаюсь найти решение для других браузеров.