2011-09-24 60 views
1

我按照指令writer创建具有CRUD能力的网格,但问题是,当我编辑现有行并保存()它认识到,排脏创建,我认为这个问题可能在我的idProperty如link,但无法弄清楚如何。ExtJS的store.save()无法识别更新

这里是我的代码

列模型

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' 
       } 
      } 
     }); 

Reader和Writer

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 

     }); 

回答

1

我有变化

idProperty : 'finCol0' to idProperty : 'fundHeadSeq' 
在JSONWriter

{name: 'finCol0',mapping:'fundHeadSeq'}, to {name: 'fundHeadSeq',mapping:'fundHeadSeq'}, 

和列模型和一切工作变动

{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}, 

预期。

0

我有一个类似于你的问题。

IdProperty'user_id'和作家创造从未被调用。我更改为'userId',现在就可以工作。

很奇怪。我在Extjs 3.4之下。