как добавить новую строку в jqgrid в середине сетки - PullRequest
1 голос
/ 15 декабря 2011

jqGrid 4.3 позволяет добавить новую строку, используя встроенное редактирование.

Демонстрация встроенного навигатора в http://trirand.com/blog/jqgrid/jqgrid.html Показывает, что после добавления сетки команд прокручивается вверх, а добавляемая строка появляется в верхней части сетки.Это сбивает с толку.

Как заставить добавленную строку появляться перед текущей строкой?

Я разместил это как запрос функции в http://www.trirand.com/blog/?page_id=393/feature-request/force-added-row-in-inline-edit-to-appear-before-current-row/

1 Ответ

3 голосов
/ 15 декабря 2011

В ответ Я предложил расширить метод addRowData для поддержки новых значений afterSelected и beforeSelected (дополнительно к существующим first, last, before и after). ) параметра position. Я показал, что можно переписать (подкласс) оригинальный метод addRowData, чтобы добавить поддержку без написания полного кода addRowData.

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

Таким же образом мы можем решить проблему и в методе inlineNav . Новая демонстрация демонстрирует это.

Соответствующий код является практически копией кодов из ответа.

var oldAddRowData = $.fn.jqGrid.addRowData;

$.jgrid.extend({
    addRowData: function (rowid, rdata, pos, src) {
        if (pos === 'afterSelected' || pos === 'beforeSelected') {
            if (typeof src === 'undefined' && this[0].p.selrow !== null) {
                src = this[0].p.selrow;
                pos = (pos === "afterSelected") ? 'after' : 'before';
            } else {
                pos = (pos === "afterSelected") ? 'last' : 'first';
            }
        }
        return oldAddRowData.call(this, rowid, rdata, pos, src);
    }
});

...
$("#list").jqGrid('inlineNav', '#pager', {addParams: {position: "afterSelected"}});

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

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