1

を使用して新しい行を挿入した後

my_table.jqGrid('addRowData', selected_rowid+1, newRow, 'after', selected_rowid);

新しい行はテーブルに正しく挿入されますが、グリッド データを出力すると

my_table.getGridParam('data')

新しい行はデータ配列の最後に挿入されます。また、新しい行が挿入された後に任意の行をクリックすると、rowid が更新 (増分) されませんでした。

これを修正する方法はありますか?

グリッドの定義は次のとおりです。

my_table.jqGrid({

            colNames:['Id', 'Start','End', 'Duration', 'Text','Position','Alignment','Warnings','Errors'],
            colModel:[
                {name:'rowid',index:'myrowid',hidden: true},
                {name:'start',index:'startTime', width:10, formatter: convertTime},
                {name:'end',index:'endTime', width:10, formatter: convertTime},
                {name:'duration',index:'duration', width:10, formatter: getDuration},
                {name:'data',index:'dataText', width:40, align:"middle", sortable:false, editable:true, edittype: 'text'},
                {name:'position',index:'position', width:5,editable:true, sortable: false, edittype:'text'},
                {name:'alignment',index:'alignment',width:5,editable:true, sortable: false,edittype:'text'},
                {name:'warnings',index:'warnings',hidden: true, formatter: warnings},
                {name:'errors',index:'errors',hidden: true, formatter: errors},     
            ],
            //pager: '#packagePager',
            datatype: "local",
            width: 700,
            height: 800, 
            data: my.caption_data.rows,

            localReader: {
                id: "rowid",
                repeatitems: true
            },
            rowNum: length,

            viewrecords: true,
            cellsubmit:'clientArray',
            rownumbers:true,
            hoverarrows: true,
            multiselect: true,
            cellEdit: false,
            scrollrows : true,
            multiboxonly:true,
            autoencode:true,   
        });

以前の投稿を読んだところ、行 ID として「未定義」を渡すことができるようです。問題は、ID を正しくソートしたいことです。そのため、rowid 7 の後に行を挿入すると、新しい行の rowid は 8 になり、残りはすべて 1 つ押し戻されます。これはjqGridで可能ですか?

4

0 に答える 0