Jqgrid添加和编辑表单属性不起作用

时间:2013-10-31 18:36:42

标签: jquery jqgrid

我正在使用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:true。但是在时间它还没有奏效。后来我使用了recreatefilter:true。但结果是一样的。

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

提前感谢。

1 个答案:

答案 0 :(得分:1)

删除recreateform : true,并将其替换为

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

感谢Oleg发布此答案。