jqgrid изменить значение ячейки и остаться в режиме редактирования - PullRequest
0 голосов
/ 09 марта 2011

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

пока что я сделал, сохранил строку, а затем снова выбрал ее и сделал в режиме редактирования - но я не думаю, что это хорошее решение - есть ли способ остаться в режиме редактирования во время измененияэто?

Спасибо заранее.

Ответы [ 2 ]

5 голосов
/ 10 марта 2011

Если вам нужно реализовать поведение ячеек зависимостей, которые все находятся в режиме редактирования, вы должны изменить ячейку, содержащуюся вручную, например, для функции jQuery.html . Если имя столбца, который вы хотите изменить, имеет имя «описание», и вы используете событие «размытие» в другом столбце «код», то вы можете сделать следующее

editoptions: {
    dataEvents: [
        {
            type: 'blur',
            fn: function(e) {
                var newCodeValue = $(e.target).val();
                // get the information from any source about the
                // description of based on the new code value
                // and construct full new HTML contain of the "description"
                // cell. It should include "<input>", "<select>" or
                // some another input elements. Let us you save the result
                // in the variable descriptionEditHtml then you can use

                // populate descriptionEditHtml in the "description" edit cell
                if ($(e.target).is('.FormElement')) {
                    // form editing
                    var form = $(e.target).closest('form.FormGrid');
                    $("#description.FormElement",form[0]).html(descriptionEditHtml);
                } else {
                    // inline editing
                    var row = $(e.target).closest('tr.jqgrow');
                    var rowId = row.attr('id');
                    $("#"+rowId+"_description",row[0]).html(descriptionEditHtml);
                }
            }
        }
    ]
}

Код будет работать как для встроенного редактирования, так и для редактирования формы.

Рабочий пример зависимых <select> элементов, которые вы можете найти здесь .

0 голосов
/ 08 июля 2011

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

editrules = new
{
custom = true,
custom_func = function( val, col ) { ... }
 },

и переместить этот код из размытия в custom_func, как описано в jqgrid: как отправлять и получать данные строк, сохраняя режим редактирования

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