【发布时间】:2011-09-05 18:52:01
【问题描述】:
我有一个 3 列的 JQGrid。目前我已经实现了它,以便它是一个完全可编辑的网格(当你点击一行时,它会变得可编辑)。现在要离开编辑模式并保存我必须按回车,但我需要的是有可能:
当我在编辑模式下单击网格外以将我选择的行数据自动保存到数据库时,但我仍然希望在输入单击按钮功能时保持保存。
我不知道是否有可能实现,所以我在 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";
}});
});
【问题讨论】:
-
如果用户点击(选择)另一行,您的意思是要保存当前编辑行吗?
-
是的,或者如果用户点击网格外
标签: jqgrid