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 : true を使用しませんでした。しかし、それはうまくいきませんでした。後で recreatefilter : true を使用しました。しかし、結果は同じです。

この問題を乗り越えるために私がしなければならないことを教えてください。

前もって感謝します。

4

1 に答える 1

1

取り外し recreateform : true,て交換する

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

この回答を投稿してくれた Oleg に感謝します。

于 2014-09-16T15:36:03.893 に答える