jqGrid с навигационной панелью / пейджером, имеющей пользовательскую функцию, привязанную к кнопке редактирования - PullRequest
1 голос
/ 21 января 2012

Я использую плагин jQuery, который генерирует интерактивные таблицы с именем jqGrid .

Я хочу использовать это " editfunc " (2 / 3rds или 3 /Четвёртое вниз по странице), но я не могу найти четкий пример того, как это реализовать где-либо.Я пробовал несколько разных вещей, и все они оставляют меня с полным провалом.

Для ясности, сгенерированная таблица выглядит примерно так:

enter image description here

Эта нижняя панель называется «navpbar» или «pager», вы реализуете ее как отдельный DIV, API и документация довольно неясны (во всяком случае, для меня), как именно я добавляю пользовательскую функцию к этим кнопкам, например «добавить»., "edit", "delete" и т. д. Я могу заставить работать функциональность по умолчанию, но я не могу найти что-либо в веб-поисках, на этом сайте или в документах API о том, как выглядит фактическая реализация.

1 Ответ

3 голосов
/ 21 января 2012

jqGrid имеет открытый исходный код.Это помогает очистить все вопросы прямо в коде.Посмотрите на строки , например.Вы увидите, что navGrid делает при нажатии на кнопку «Редактировать» навигатора:

var sr = $t.p.selrow;
if (sr) {
    if($.isFunction( o.editfunc ) ) {
        o.editfunc(sr);
    } else {
        $($t).jqGrid("editGridRow",sr,pEdit);
    }
} else {
    $.jgrid.viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$t.p.id,jqm:true});
    $("#jqg_alrt").focus();
}

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

Метод editGridRow имеет множество функций настройки.Параметр prmEdit navGrid позволяет указать любой параметр, используемый editGridRow .

Если вы не хотите отображать форму редактирования и отображать любой другой графический интерфейсвместо этого вы можете использовать editfunc функцию обратного вызова.Например:

$("#list").jqGrid('navGrid', '#pager', {
    editfunc: function (rowid) {
        alert('The "Edit" button was clicked with rowid=' + rowid);
    }
});

См. демоверсию .Выберите строку и нажмите кнопку «Редактировать», и вместо стандартной формы редактирования вы увидите alert.

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