Я добавил пользовательский элемент управления кнопкой редактирования в навигатор jqGrid следующим образом:
jQuery("#grid").navButtonAdd('#pager',
{
caption:"Edit",
buttonicon:"ui-icon-pencil",
onClickButton: editSelectedRow,
position: "last",
title:"click to edit selected row",
cursor: "pointer",
id: "edit-row"
}
);
Чтобы вместо использования функции по умолчанию: editGridRow, она использовала мою пользовательскую функцию editSelectedRow. Однако я также хочу добавить функцию doubleClick, чтобы она вызывала editSelectedRow для doubleClick.
с использованием функции editGridRow по умолчанию работает как таковой
ondblClickRow: function()
{
var rowid = jQuery("#grid").jqGrid('getGridParam','selrow');
jQuery(this).jqGrid('editGridRow', rowid);
}
Однако, когда я заменяю функцию editGridRow по умолчанию на мою функцию по умолчанию editSelectedRow как таковую,
ondblClickRow: function()
{
var rowid = jQuery("#grid").jqGrid('getGridParam','selrow');
jQuery(this).jqGrid('editSelectedRow', rowid);
}
Я получаю следующую ошибку в firebug:
uncaught exception: jqGrid - No such method: editSelectedRow
Однако функция editSelectedRow существует и работает с нажатием пользовательской кнопки редактирования. Пожалуйста, помогите, спасибо.
UPDATE :
@Oleg: Как и требовалось, вот метод определения кода: editSelectedRow
function editSelectedRow(rowid)
{
var rowid = jQuery("#grid").jqGrid('getGridParam','selrow');
if( rowid != null )
{
var dialogId = '#edit-form-dialog';
var dialogTitle = 'Edit Customer';
$(dialogId).load('/customer/edit/id/' + rowid, function ()
{
$(this).dialog(
{
modal: false,
resizable: true,
minWidth: 650,
minHeight: 300,
height: $(window).height() * 0.95,
title: dialogTitle,
buttons:
{
"Save": function ()
{
var form = $('form', this);
$(form).submit();
$("#grid").trigger("reloadGrid");
},
"Cancel": function ()
{
$("#grid").trigger("reloadGrid");
$(this).dialog('close');
}
}
});
LaunchEditForm(this);
});
}
else
{
jQuery( "#dialogSelectRow" ).dialog();
}
return false;
}
@ Олег: Спасибо, вы не рекомендовали использовать собственный метод editSelectedRow вместо метода editGridRow. Я использую это потому, что мои формы Zend Forms и мне нужны все навороты Zend Form. Сервер генерирует эту форму и загружается в диалоговую форму. Если есть способ достичь этого, не прибегая к моему пользовательскому методу editSelectedRow, я был бы рад изучить его. Благодарю.