0

私は を持ってGridWindowます。そのウィンドウの行をクリックして削除ボタンをクリックすると、その行はウィンドウから削除されます。(私はしなければならないと思いますremove it from Store and reload the grid, so the changes will be picked

クリック イベントを取得できず、ストアから行を削除できません。このためのボタンを追加しましたが、グリッド レコードを取得してストアから削除し、再ロードすることができません。

私のコードは次のとおりです。

Ext.define('MyApp.view.Boy', {
    extend: 'Ext.window.Window',
    alias: 'widget.boy',
    height: 800,
    width: 900,
    layout: {
        type: 'absolute'
    },
    initComponent: function() {
        var me = this;
        Ext.applyIf(me, {
            items: [
                {
                    xtype: 'gridpanel',
                    height: 500,
                    width: 800,
                    title: 'My Grid Panel',
                    store: 'School',
                    viewConfig: {
                    },
                    columns: [
                        {
                            xtype: 'gridcolumn',
                            dataIndex: 'Id',
                            text: 'id'
                        },
                        {
                            xtype: 'gridcolumn',
                            dataIndex: 'name',
                            text: 'name'
                        }
                    ]
                },
                {
                    xtype: 'button',
                    height: 40,
                    width: 150,
                    text: 'Remove',
                    listeners: {
                        click: {
                            fn: me.removebuttonclick,
                            scope: me
                        }
                    }
                }
            ]
        });

        me.callParent(arguments);
    },
    removebuttonclick: function(button, e, options) {
        console.log('removebuttonclick');
    }
});
4

1 に答える 1

1

何かのようなもの:

Ext.define('MyApp.view.Boy', {
    extend: 'Ext.window.Window',
    alias: 'widget.boy',
    height: 800,
    width: 900,
    layout: {
        type: 'absolute'
    },
    initComponent: function() {
        var me = this;
        var this.grid = Ext.widget({
                    xtype: 'gridpanel',
                    height: 500,
                    width: 800,
                    title: 'My Grid Panel',
                    store: 'School',
                    viewConfig: {
                    },
                    columns: [
                        {
                            xtype: 'gridcolumn',
                            dataIndex: 'Id',
                            text: 'id'
                        },
                        {
                            xtype: 'gridcolumn',
                            dataIndex: 'name',
                            text: 'name'
                        }
                    ]
                });
        Ext.applyIf(me, {
            items: [
                this.grid, //oopsie
                {
                    xtype: 'button',
                    height: 40,
                    width: 150,
                    text: 'Remove',
                    listeners: {
                        click: {
                            fn: me.removebuttonclick,
                            scope: me
                        }
                    }
                }
            ]
        });

        me.callParent(arguments);
    },
    removebuttonclick: function(button, e, options) {
    var me = this;
    Ext.Array.each(this.grid.getSelectionModel().selected,function(record, index,selectedRows){
            me.grid.getStore().remove(record);
        });
    }
});
于 2012-08-01T13:18:48.270 に答える