0

..................私の見解.............................. ...................

Ext.define('AM.view.emp.EDUGRID', {
    extend: 'Ext.grid.Panel',
    alias: 'widget.education',
    title: 'All Users',
    store: 'AddEdu',
    //id:'111',
    dockedItems: [{
        xtype: 'toolbar',
        items: [{
            iconCls: 'icon-add',
            text: 'Add',
            action: 'save'

        }, {
            iconCls: 'icon-delete',
            text: 'Delete',
            disabled: true,
            itemId: 'delete',
            scope: this,
            action: 'Del'
        }]
    }],
    initComponent: function () {

        this.columns = [{
            header: 'Level',
            dataIndex: 'Level',
            flex: 1
        }, {
            header: 'institute',
            dataIndex: 'institute',
            flex: 1
        }, {
            header: 'specialization',
            dataIndex: 'specialization',
            flex: 1
        }, {
            header: 'YoP',
            dataIndex: 'YoP',
            flex: 1
        }]

        this.callParent(arguments);
        this.getSelectionModel().on('selectionchange', this.onSelectChange, this);
    },
    onSelectChange: function (selModel, selections) {
        this.down('#delete').setDisabled(selections.length === 0);
    }
});

del ボタンをクリックすると、削除操作を指定する必要があるコントローラーに移動しますが、削除機能内で何を指定すればよいかわかりません。これが私のコントローラーです.................................................................. ...................

Ext.define('AM.controller.Users', {
    extend: 'Ext.app.Controller',
    stores: ['Users', 'Nationality', 'Maritalstatus', 'Empcat', 'Designation', 'Department', 'AddEdu'],
    models: ['User',
        'nationality',
        'maritalstatus',
        'empcat', 'designation', 'department', 'AddEdu'],
    views: [
        'user.List',
        'user.Edit',
        'emp.PD',
        'emp.JD', 'emp.WE',
        'emp.EDUGRID',
        'emp.eduform'],

    init: function () {
        this.control({

            'education button[action=save]': {

                click: this.EduQ
            },
            'edu button[action=save]': {
                click: this.UpdateEdu
            },
            'education button[action=Del] ': {
                click: function (grid, cell, row, col, e) {
                    var rec = this.grid.getStore().getAt(row);
                }
            }
        });
    },   

EduD には何を入れればいいですか

    EduD: function (view, cell, row, col, e) {
           var record = this.getGrid().store.getAt(row)
           this.deleteRecord([record])
       },

       EduQ: function (grid, record) {
           var view = Ext.widget('edu');
       },

       UpdateEdu: function (button) {
           var win = button.up('window');
           var form = win.down('form').getForm();
           if (form.isValid()) {
               var record = form.getRecord();
               var values = form.getValues();
               if (!record) {
                   var newRecord = new AM.model.AddEdu(values);
                   this.getAddEduStore().add(newRecord);
               } else {
                   record.set(values);
               }
               win.close();
           }
       }
});
4

2 に答える 2

1

ストアからレコードを削除するだけで、データベース呼び出しに同期したい場合store.sync();

例:

//Your listener can change to this:
'education button[action=Del] ': {
                this.EduD
}

//The callback function:
EduD: function (view, cell, row, col, e) {
       var store = view.getStore(); //You can access the store from the view
       var record = store.getAt(row); //Get the clicked record
       store.remove(record); //Remove the record from the store
       store.sync(); //Sync the store
},
于 2013-02-27T08:56:48.253 に答える
0

グリッドはこのようにする必要があります

{header: 'Cancel Leave',flex:1,
                xtype: 'actioncolumn',
                width:30,
                action:'cancel',
                sortable: false,
                items: [{
                handler: function(view, cell, rowIndex, colIndex, e, record, row) {
                                        this.addEvents('itemclick');

                                  this.fireEvent('itemclick',view, cell, rowIndex, colIndex, e, record, row);


                               },
                    icon: 'ext-4.1.1a-gpl/ext-4.1.1a/docs/extjs/resources/themes/images/default/grid/page-first-disabled.gif',
                    tooltip: 'Cancel Leave'
                       }]
            }]

コントローラーは...

            'leaveleavehistorygrid actioncolumn': {
            itemclick: this.cancelLeave
            }

キャンセル休暇はこんな感じです。

cancelLeave: function (view, cell, rowIndex, colIndex, e, record, row) {

            Ext.Msg.confirm('Remove Qualification', 'Are you sure?', function (button) {
        if (button == 'yes') {
            var store = Ext.getStore('LeaveRequest');
           var newRecord = new AM.model.leaverequest(row);
           console.log(record);
           console.log(store);
           store.remove(record);
           store.sync();
        }
    }, this);
于 2013-03-19T09:20:25.390 に答える