【问题标题】:Extjs store.save() not recognize updateExtjs store.save() 无法识别更新
【发布时间】:2011-09-24 03:00:34
【问题描述】:

我按照writer 中的说明创建具有 CRUD 功能的网格,但问题是当我编辑现有行并 save() 它将脏行识别为创建时,我认为问题可能出在我的 idProperty 中,如 @ 987654322@,但不知道怎么做。

这是我的代码

列模型

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

        });

【问题讨论】:

    标签: extjs store crud writable


    【解决方案1】:

    我有零钱

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

    在列模型中,一切都按预期工作。

    【讨论】:

      【解决方案2】:

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

      我的IdProperty'user_id',并且从未调用过作者 create。我改为'userId',现在可以使用了。

      很奇怪。我在Extjs 3.4下。

      【讨论】:

        猜你喜欢
        • 2012-01-25
        • 2012-01-09
        • 2019-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多