jqGrid单元格编辑本地

时间:2010-12-22 20:56:31

标签: jquery html jqgrid editing

我正在尝试使用可编辑单元格实现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 });

但是,每当我尝试编辑一个单元格时,它都允许我在其上书写,但只要我点击其他行或甚至在网格外部,文本就会消失。

另一件事,每次我点击“输入”它都会尝试提交一些内容,因为它会显示以下消息: “没有设置网址。”

当然,我只想在本地使用这个网格。编辑网格后,用户必须单击.html中包含的“提交”按钮,然后我将管理网格上插入的数据。

THX。

1 个答案:

答案 0 :(得分:8)

为了能够在本地使用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没有完整的本地编辑支持。

我建议您只使用cell editing并将editurl:'clientArray'包含在jqGrid的选项中。应删除Form EditingcellEdit: true)和{{3}}。