У меня есть JQGrid с 3 столбцами.На данный момент я реализую его так, чтобы он был полностью редактируемой сеткой (где при нажатии на строку она становится редактируемой).Прямо сейчас, чтобы выйти из режима редактирования и сохранить, мне нужно нажать Enter, но мне нужно иметь возможность:
Когда я щелкаю вне сетки в режиме редактирования, чтобы автоматически сохранять выбранные данные строки в БД, нопо-прежнему хотите сохранить сохранить при нажатии кнопки функции все.
Я не знаю, возможно ли это сделать, поэтому у меня есть обе функциональности на 1 сетке.
вот код для jqgrid
var lastsel;
jQuery(document).ready(function() {
jQuery("#list").jqGrid({
url: '@Url.Action("SellerList")',
datatype: 'json',
mtype: 'GET',
loadonce: true, // to enable sorting on client side
sortable: true, //to enable sorting
colNames: ['SellerKey', 'SellerId', 'Navn', 'Email', 'Slet'],
colModel: [
{ name: 'id ', index: 'id ', width: 50, key: true, editable: true, editrules: { edithidden: false }, hidden: true },
{ name: 'SellerId', index: 'SellerId', align: 'center', width: 50, editable: true, editrules: { edithidden: false }, hidden: true },
{ name: 'Navn', index: 'Navn', width: 200, edittype: 'text', align: 'left', editable: true, sortable: true },
{ name: 'Email', index: 'Email', width: 300, edittype: 'text', align: 'left', editable: true, sortable: true },
{ name: 'act', index: 'act', width: 80, align: 'center', sortable: false }],
loadComplete: function() {
jQuery("#list").trigger("reloadGrid"); // Call to fix client-side sorting
},
gridComplete: function() {
var ids = jQuery("#list").jqGrid('getDataIDs');
var gr = jQuery('#list'); gr.setGridHeight('auto', true);
for (var i = 0; i < ids.length; i++) {
var cl = ids[i];
var be = "<a href='#' value='Slet' onclick=\"jQuery('#list').jqGrid('delGridRow','" + cl + "',{reloadAfterSubmit:false, url:'@Url.Action("deleteRow")'}); return false;\">Slet </>";
jQuery("#list").jqGrid('setRowData', ids[i], { act: be });
}
},
onSelectRow: function(id) {
if (id && id !== lastsel) {
jQuery('#list').jqGrid('restoreRow', lastsel);
jQuery('#list').jqGrid('editRow', id, true);
lastsel = id;
}
},
editurl: '@Url.Action("GridSave")',
rowNum: 100,
rowList: [5, 10, 20, 50],
viewrecords: true
});
var grid = jQuery("#list");
jQuery("#list").jqGrid('navGrid', "#page", { edit: false, add: false, del: false }, { beforeShowForm: function(form) {
// "editmodlist"
var dlgDiv = grid.jqGrid("#delmodlist" + grid[0].id);
var parentDiv = dlgDiv.parent(); // div#gbox_list
var dlgWidth = dlgDiv.width();
var parentWidth = parentDiv.width();
var dlgHeight = dlgDiv.height();
var parentHeight = parentDiv.height();
// TODO: change parentWidth and parentHeight in case of the grid
// is larger as the browser window
dlgDiv[0].style.top = Math.round((parentHeight-dlgHeight)/2) + "px";
dlgDiv[0].style.left = Math.round((parentWidth-dlgWidth)/2) + "px";
}});
});