1

この例を試してみてください。

コンソールを開き、jsFiddle を実行し、プロパティ値を変更して、[状態をコンソールに書き込む] をクリックします。

ストアが更新されたレコードをまだ報告していないのはなぜですか? プロパティの新しい値を認識します。

これは、JsFiddle の Ext JS 4.2 コードです。

Ext.onReady(function() {    


Ext.define('KitchenSink.view.grid.PropertyGrid', {
    extend: 'Ext.container.Container',

    requires: [
        'Ext.button.Button',
        'Ext.grid.property.*',
        'Ext.layout.container.VBox',
        'Ext.layout.container.HBox'
    ],
    xtype: 'property-grid',


    height: 275,
    width: 300,
    layout: {
        type: 'vbox',
        align: 'stretch'
    },

    initComponent: function(){
        Ext.apply(this, {
            items: [{
                xtype: 'container',
                layout: 'hbox',
                margin: '0 0 10 0',
                defaultType: 'button',
                items: [{
                    text: 'Write state to console',
                    margin: '0 0 0 10',
                    scope: this,
                    handler: this.onWriteStateClick
                }]
            }, {
                xtype: 'propertygrid',
                source: {
                    weight: 0.01,
                    distance: 1
                }
            }]
        });
        this.callParent();
    },

    onWriteStateClick: function(){
        var grid = this.down('propertygrid');

        var store = grid.getStore();
        console.log("Number of new records: " + store.getNewRecords().length);
        console.log("Number of updated records: " + store.getUpdatedRecords().length);
        console.log("Number of deleted records: " + store.getRemovedRecords().length);

        store.each(function (rec) {
            console.log("store says --> key: " + rec.get("name") + ", value: " + rec.get("value"));
        });

        //var source = grid.getSource();
        //Object.keys(source).forEach(function(key) {
        //    console.log("source says --> key: " + key + ", value: " + source[key]);
        //});
    },


});


Ext.create('KitchenSink.view.grid.PropertyGrid', { renderTo: Ext.getBody() });


});
4

1 に答える 1