1

我正在使用 jqgrid,但在添加和编辑时遇到问题。我的 jqgrid 代码看起来像这样..

 function setupGrid(){
    jQuery("#dataTable").jqGrid({
        url: "person/get",
        datatype: "json",
        loadonce : false,
        jsonReader: {root : "rows", repeatitems: false, id: "id"},
        colNames:['ID','First Name','Last Name', 'Address', 'Postcode'],
        colModel:[
            {name:'id',index:'id', width:20, sortType:"int"},
            {name:'firstName',index:'firstName', width:100, editable:true},
            {name:'lastName',index:'lastName', width:100, editable:true},
            {name:'address',index:'address', width:380, align:"right", editable:true},
            {name:'postcode',index:'postcode', width:100, align:"right", editable:true,editoptions:{size:25}
             }
        ],
        rowNum:4,
        rowList:[5,10,20,30],
        height:200,
        pager: "#pagingDiv",
        viewrecords: true,
        sortname: 'id',
        sortorder: "desc",
        caption: "Names and Addresses",
        rownumbers : true,
        ondblClickRow: function(rowid) {
            grid.jqGrid('editGridRow',rowid, editParam);
            return;
        }
    }).navGrid('#pager', 

        {add : true, edit : true, del: true, search:true,
            multipleSearch : true
        },

        {
            recreateform : true,
            width : 800, 
            url: 'person/test', 
            top: 350, 
            left:400,

            editCaption:"Edit Employee",
            viewPagerButtons :false,
            closeOnEscape:true,
            model : true,
            closeAfterEdit : true,
            topinfo : 'Top Info Test Edit',
            bottominfo : "Footer Info",
            checkOnSubmit : true,
        },

        {
            recreateform : true,
            width:300, 
            url:'person/test2', 
            top: 350, 
            left:400, 
            addCaption : "Add Employee",
            closeOnEscape:true,
            drag : true,
            model : true,
            topinfo : 'Top Info Test',
            closeAfterAdd : true,
        },


        {
            url : 'person/delete',
            mtype:"POST",
            deleteCaption : "Delete Employee"
        },

    {
            recreatefilter : true                   
    });


    jQuery("#dataTable").jqGrid('filterToolbar',{stringResult: true,searchOnEnter : true});
}

我的问题是我启动应用程序并单击 jqgrid 添加按钮然后选择添加属性。之后,如果我单击编辑,但它也会选择添加按钮属性。

如果我再次启动应用程序,这一次如果我选择编辑按钮(假设我已经在网格中有数据而没有点击添加按钮)这次编辑表单填充编辑属性。现在单击添加按钮,现在它选择编辑表单属性。我不明白发生了什么事。

最初我没有使用 recreatefilter :是的。但有时它没有奏效。后来我使用了 recreatefilter : true。但结果是一样的。

任何人都可以告诉我我必须做些什么来解决这个问题。

提前致谢。

4

1 回答 1

1

删除 recreateform : true,并替换为

beforeInitData: function () {
  $("#editmod" + this.id).remove();
}

感谢 Oleg 发布此答案。

于 2014-09-16T15:36:03.893 回答