jqGrid не предоставляет в настоящее время простой способ заменить вызов редактирования на другой метод или включить пользовательскую кнопку. Что вы можете сделать в качестве альтернативы, это «подклассы» $.fn.fmatter.rowactions
, как описано в the answer. Функция $.fn.fmatter.rowactions
будет вызываться при нажатии любой из кнопок действий. Таким образом, вы можете проверить, является ли параметр act
"edit"
или нет. В случае кнопки "edit"
вы можете переадресовать вызов на функцию $.fn.fmatter.rowactions
. В случае кнопки "edit"
вы можете выполнить любое свое действие.
ОБНОВЛЕНО: Конкретная реализация зависит немного от версии jqGrid, которые вы используете, так как параметры и значение this
функции $.fn.fmatter.rowactions
различны для разных версий jqGrid. Я создал для вас the demo, который использует free jqGrid 4.8 (см. readme и wiki). Я использовал следующий код для подклассов
var orgRowActions = $.fn.fmatter.rowactions;
$.fn.fmatter.rowactions = function (e, act) {
var $grid = $(this).closest("table.ui-jqgrid-btable"),
rowid = $(this).closest("tr.jqgrow").attr("id");
if (act === "edit") {
$grid.jqGrid("viewGridRow", rowid);
return false;
}
return orgRowActions.call(this, e, act);
}
В результате кнопка «Edit» начинается «View» вместо формы редактирования.
Я планирую включить дополнительные возможности настройки в следующую версию бесплатного jqGrid. Таким образом, вы сможете создать пользовательский встроенный значок без трюков с подклассом.
Спасибо, что помогли мне, Олег. Я думаю, что я делаю что-то неправильно. Извините, это неясно для меня:/ Основываясь на ссылке, которую вы опубликовали, я делаю это: 'var orgRowActions = $ .fn.fmatter.rowactions; $ .fn.fmatter.rowactions = function (rid, gid, act, pos) { var $ grid = $ ("#" + $ .jgrid.jqID (gid)), rowData = $ grid.jqGrid (" getLocalRow ", rid), isNonEditable = false, результат; if (act === "edit") { window.location = myURL; } результат = orgRowActions.call (это, rid, gid, act, pos); результат возврата; } ' Любые мысли о том, где я ошибаюсь? –
@LucasGabriel: Я создал демо для вас, что демонстрирует реализацию. См. ** ОБНОВЛЕНО ** часть моего ответа. – Oleg
большое вам спасибо! вот и все. Я использую версию 4.6.0, и параметры разные. он работает отлично! –