我遵循writer中的指令来创建具有CRUD能力的网格,但问题是当我编辑现有行并且save()它将脏行识别为create时,我认为问题可能在于我的idProperty as在link,但无法弄清楚如何。
这是我的代码
列模型
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
});
答案 0 :(得分:2)
我有变化
idProperty : 'finCol0' to idProperty : 'fundHeadSeq'
和
{name: 'finCol0',mapping:'fundHeadSeq'}, to {name: 'fundHeadSeq',mapping:'fundHeadSeq'},
在JSONWriter中并更改
{header: 'id', dataIndex: 'finCol0', align: 'left', hidden: true, hideable: false, sortable: false, width: 70},
to
{header: 'id', dataIndex: 'fundHeadSeq', align: 'left', hidden: true, hideable: false, sortable: false, width: 70},
在列模型中,一切都按预期工作。
答案 1 :(得分:0)
我遇到了与你类似的问题。
我的IdProperty
是'user_id'
,而作家创建从未被调用过。我改为'userId'
,现在就可以了。
很奇怪。我在Extjs 3.4
。