我正在尝试实现一个带有可编辑单元格的jqGrid:
var myGrid = $("#mygrid").jqGrid({
datatype: 'local',
data: mydata,
colModel: [
{ name: 'Serial', width: 1040, editable: true, edittype: 'text' }
],
rowNum: 10,
rowList: [10, 20, 30],
pager: '#mypager',
sortname: 'Serial',
cellEdit: true,
viewrecords: true,
sortorder: "desc",
onSelectRow: function(id){
if(id && id!==lastSel){
jQuery('#mygrid').restoreRow(lastSel);
lastSel=id;
}
jQuery('#mygrid').editRow(id, true);
}
});
myGrid.jqGrid('navGrid', '#mypager', { edit: true, add: false, del: false, search: true });
然而,每当我试图编辑一个单元格时,它允许我在上面写,但只要我单击其他行,甚至在网格之外,文本就会消失。
另一件事,每次我按“回车”时,它都会尝试提交一些内容,因为它会向我显示以下消息:
“未设置url”。
当然,我只想在“本地”使用这个网格。编辑网格后,用户必须单击.html中包含的“提交”按钮,然后我将管理网格中插入的数据。
谢谢。
最佳答案
要能够在本地使用cell editing(您使用cellEdit:true
),必须使用cellsubmit:'clientArray'属性。
另一方面,您也使用editRow函数,因此您希望使用Inline Editing。要能够在本地使用Inline Editing,您应该定义editurl:'clientArray'
(请参见documentation here)。
除此之外,您还可以使用myGrid.jqGrid('navGrid', '#mypager', { edit: true, ...})
来启用Form Editing,它没有完全的本地编辑支持。
我建议您使用Inline Editing并将editurl:'clientArray'
包含到jqGrid的选项中。应移除cell editing(cellEdit: true
)和Form Editing。