CRUD機能を備えたグリッドを作成するライターの指示に従いますが、問題は、既存の行を編集してsave()すると、ダーティ行が作成されたと認識されることです。リンクのようにidPropertyに問題があると思いますが、できません方法を理解します。
これが私のコードです
コラムモデル
var xsmWin = new Ext.grid.CheckboxSelectionModel({checkOnly:true});
var xcmWin = new Ext.grid.ColumnModel([
xsmWin,
new Ext.grid.RowNumberer(),
{header: 'id', dataIndex: 'finCol0', align: 'left', hidden: true, hideable: false, sortable: false, width: 70},
{header: 'column name', dataIndex: 'finCol2', align: 'left', hidden: false, hideable: false, sortable: true, width: 100, editor: new samart.form.xTextField({allowBlank: false})},
{header: 'input type', dataIndex: 'finCol3', align: 'left', hidden: false, hideable: false, sortable: true, width: 100},
{header: 'approve', dataIndex: 'approveFlag', align: 'center', hidden: false, hideable: false, sortable: true, width: 50},
]);
プロキシー
var proxyWin = new Ext.data.HttpProxy({
api : {
read : {
url : SERVLET_URL + '&action=loadInnerDataGrid',
method: 'POST'
},
create : {
url : SERVLET_URL + '&action=createInnerData',
method: 'POST'
},
update : {
url : SERVLET_URL + '&action=updateInnerData',
method: 'POST'
},
destroy : {
url : SERVLET_URL + '&action=destroyInnerData',
method: 'POST'
}
}
});
リーダーとライター
var writerWin = new Ext.data.JsonWriter({
encode: true,
writeAllFields: false
});
var readerWin = new Ext.data.JsonReader(
{
idProperty: 'finCol0',
root: 'data'
},[
{name: 'finCol0',mapping:'fundHeadSeq'},
//{name: 'finCol1',mapping:'fundType'},
{name: 'finCol2',mapping:'headLabel'},
{name: 'finCol3',mapping:'objectName'},
{name: 'approveFlag',convert: function(v, record){
if (record.approveFlag == 'Y') {
return 'Yes';
} else if (record.approveFlag == 'N') {
return 'No';
}
}},
]
)
店
var xstoreWin = new Ext.ux.data.PagingStore({
storeId : 'xstoreWin',
proxy : proxyWin,
reader : readerWin,
writer : writerWin,
autoSave : false,
autoLoad : true
});