我正在尝试实现一个带有可编辑单元格的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 editingcellEdit: true)和Form Editing

09-25 19:08