Панель инструментов jqGrid и кнопки удаления inline используются для удаления строк.Как установить фокус на сетку после удаления в jqgrid
Появляется диалоговое окно удаления команды удаления. После того, как удаление подтверждено или отменено, сетка не получит фокуса. Щелчок мышью в сетке требуется, чтобы клавиатурная навигация работала в сетке.
Как установить фокус на сетку после удаления или если удаление было отменено, так что дополнительный щелчок мыши не требуется?
удаления кнопки на панели инструментов:
$.extend($.jgrid.del, {
top: window.innerHeight/2-100,
left: window.innerWidth/2-120,
closeOnEscape: true,
errorTextFormat: function (response) {
clearModeless();
return decodeErrorMessage(response.responseText, '', '');
},
reloadAfterSubmit: false,
afterShowForm: function($form) {
var form = $form.parent()[0];
$("#dData",form).attr("tabindex","1000");
$("#eData",form).attr("tabindex","1001");
setTimeout(function() {
$("#dData",form).focus();
},50);
}
});
$grid.jqGrid("navGrid", "#grid_toppager", {
search: true,
del: true,
add: true,
view: true,
edit: true
},
{ url: '/erp/Grid/Edit?_entity=Klient'},
{ url: '/erp/Grid/Add?_entity=Klient' },
{ url: '/erp/Grid/Delete?_entity=Klient',
beforeShowForm: function(form) {
var selected = $grid.jqGrid('getGridParam','selarrrow');
$("td.delmsg",form).html('Rows '+selected.length +'<br/>' +
'Delete?');
}
}
);
Удалить кнопку в колонке:»
colModel: [{"name":"_actions","formatter":"actions","viewable":false,"formatoptions":{"editbutton":true,"keys":true,"onSuccess":function (jqXHR) { jqXHRFromOnSuccess=jqXHR;return true;}
,"afterSave":function (rowId) {
var data = $.parseJSON(jqXHRFromOnSuccess.responseText);
$grid.jqGrid('setRowData', rowId, { Kood: data.PrimaryKeyValues[0] });
cancelEditing($grid);afterGridSaveFunc(rowId,jqXHRFromOnSuccess);jqXHRFromOnSuccess=null;
updateButtonState($grid);
}
,"restoreAfterError":false,"onError":errorfunc
,"extraparam":{"_dokdata":FormData
},"afterRestore":function() {
updateButtonState($grid);
}
,"onEdit":onInlineEdit
,"delbutton":true,"delOptions":{"url":"Delete","afterComplete":function (response, postdata, formid) { summarefresh($grid); }
}}},
Я добавил 'afterComplete: function() {alert ('afterComplete'); $ grid [0] .focus();}' для удаления параметров. Если кнопка Esc или кнопка отмены нажата, чтобы удалить вопрос, окно сообщения не появляется, и клавиши не работают. Как настроить фокус на сетку после удаления? – Andrus
Также, если сервер возвращает ошибку из контроллера удаления и нажата отмена, клавиши не будут работать. Также '$ grid [0] .focus()' устанавливает фокус только на сетку. Используется 'multiselect: true'. Как установить фокус на ближайшую удаленную строку или первую строку, чтобы клавиши со стрелками вверх/вниз переместились в текст/предыдущую строку после удаления? – Andrus