を使用して新しい行を挿入した後
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で可能ですか?