Изменить параметры редактируемых событий не так просто, поскольку параметры сохраняются во внутренней переменной функции navGrid
.Таким образом, вы должны привязать событие click к кнопке «Edit» и связать новое событие, которое вызывает метод editGridRow , со всеми новыми необходимыми параметрами.Новые параметры могут включать обработчик событий, такой как beforeShowForm .
. Соответствующий код может быть следующим:
var grid=$("#list"); // your jqGrid (the <table> element)
var grid_id = grid[0].id; // id of the <table> element like "list"
$("#edit_"+grid_id).unbind('click'); // unbind original 'click' handle
$("#edit_"+grid_id).click(function() {
if (!$(this).hasClass('ui-state-disabled')) {
var sr = grid[0].p.selrow; // get id of selected row
if (sr) {
grid.jqGrid("editGridRow",sr,
{ // here you should place all Edit parameters
beforeShowForm: function(formid) {
alert("In beforeShowForm()");
}
});
} else {
// display error message
$.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+grid_id,jqm:true});
$("#jqg_alrt").focus();
}
}
return false;
});
ОБНОВЛЕНО : если вывызовите где-нибудь editGridRow метод напрямую и не можете изменить код, который вы можете сделать, следуя
var grid=$("#list"); // your jqGrid (the <table> element)
var orgEditGridRow = grid.jqGrid.editGridRow; // save original function
$.jgrid.extend ({editGridRow : function(rowid, p){
$.extend(p,
{ // modify some parameters of editGridRow
beforeShowForm: function(formid) {
alert("In new beforeShowForm()");
}
});
orgEditGridRow.call (this,rowid, p);
}});