How to edit / delete a row in a grid model using a button inside the gird rows?

我只是一个虾纸丫 提交于 2019-12-22 06:28:56

问题


Ext.onReady(function() {
Ext.define('User', {
    extend: 'Ext.data.Model',
    fields: [ 'name', 'class', 'view', 'edit', 'delete']
});
var userStore = Ext.create('Ext.data.Store', {
    model: 'User',
    data: [
        { name: 'Sri Vidhya', class: '6 A'},
        { name: 'Rafla', class: '9 C'},
        { name: 'Fabin', class: '10 B'},
        { name: 'Jayanthi', class: '8 C'},
        { name: 'Sri Vidhya', class: '6 A'},
        { name: 'Rafla', class: '9 C'},
        { name: 'Fabin', class: '10 B'},
        { name: 'Jayanthi', class: '8 C'},
        { name: 'Sri Vidhya', class: '6 A'},
        { name: 'Rafla', class: '9 C'},
        { name: 'Fabin', class: '10 B'},
        { name: 'Jayanthi', class: '8 C'}
    ]
});
Ext.create('Ext.grid.Panel', {
    cls: 'custom-grid',
    renderTo: Ext.getBody(),
    store: userStore,
    width: 389,
    height: 200,
    title: 'Student Details',
    columns: [
        {
            text: 'Student Name',
            cls: 'studentName',
            width: 100,
            sortable: true,
            hideable: false,
            dataIndex: 'name'
        },
        {
            text: 'Student Class',
            cls: 'studentClass',
            width: 150,
            sortable : true,
            dataIndex: 'class'   
        },
        {
            xtype:'actioncolumn', 
            width:40,
            tdCls:'delete',
            items: [{
                icon: 'Delete-icon.png',  // Use a URL in the icon config
                tooltip: 'Delete',
                handler: function(grid, rowIndex, colIndex) {
                    var rec = grid.getStore().getAt(rowIndex);
                    //**rec.store.remove();**
                    //rec.store.remove()` is not working. 

                    Suggest me the code that will work here to remove the //entire row?
                    alert("Delete " + rec.get('name'));
                }
            }]
        },
        {
            xtype:'actioncolumn', 
            tdCls:'edit',
            width:40,
            items: [{
                icon: 'edit-icon.png',  // Use a URL in the icon config             
                tooltip: 'Edit',
                handler: function(grid, rowIndex, colIndex) {
                    var rec = grid.getStore().getAt(rowIndex);
                    alert("Edit " + rec.get('name'));
                }
            }]
        },
        {
            xtype:'actioncolumn', 
            tdCls:'view',
            width:40,
            items: [{
                icon: 'view-icon.png',  // Use a URL in the icon config         
                tooltip: 'View',
                handler: function(grid, rowIndex, colIndex) {
                    var rec = grid.getStore().getAt(rowIndex);
                    alert("View " + rec.get('name'));
                }
            }]
        }
    ]
});
});

回答1:


grid.getStore().remove(rec); //or rec.destroy() if the url specified in model



回答2:


grid.getStore().removeAt(rowIndex)



回答3:


//My Code Updated with delete options




Ext.onReady(function() {
Ext.define('User', {
    extend: 'Ext.data.Model',
    fields: [ 'name', 'class', 'view', 'edit', 'delete']
});
var userStore = Ext.create('Ext.data.Store', {
    model: 'User',
    data: [
        { name: 'Sri Vidhya', class: '6 A'},
        { name: 'Rafla', class: '9 C'},
        { name: 'Fabin', class: '10 B'},
        { name: 'Jayanthi', class: '8 C'},
        { name: 'Sri Vidhya', class: '6 A'},
        { name: 'Rafla', class: '9 C'},
        { name: 'Fabin', class: '10 B'},
        { name: 'Jayanthi', class: '8 C'},
        { name: 'Sri Vidhya', class: '6 A'},
        { name: 'Rafla', class: '9 C'},
        { name: 'Fabin', class: '10 B'},
        { name: 'Jayanthi', class: '8 C'}
    ]
});
Ext.create('Ext.grid.Panel', {
    cls: 'custom-grid',
    renderTo: Ext.getBody(),
    store: userStore,
    width: 389,
    height: 200,
    title: 'Student Details',
    /*selType: 'User',
    plugins: [
        Ext.create('Ext.grid.plugin.CellEditing', {
            clicksToEdit: 1
        })
    ],*/
    columns: [
        {
            text: 'Student Name',
            cls: 'studentName',
            width: 100,
            sortable: true,
            hideable: false,
            dataIndex: 'name'
            /*editor: 'textfield'*/
        },
        {
            text: 'Student Class',
            cls: 'studentClass',
            width: 150,
            sortable : true,
            dataIndex: 'class'
            /*editor: 'textfield'*/         
        },
        {
            xtype:'actioncolumn', 
            tdCls:'view',
            width:40,
            items: [{
                icon: 'view-icon.png',  // Use a URL in the icon config         
                tooltip: 'View',
                handler: function(grid, rowIndex, colIndex) {
                    var rec = grid.getStore().getAt(rowIndex);
                    alert("View " + rec.get('name'));
                }
            }]
        },
        {
            xtype:'actioncolumn', 
            tdCls:'edit',
            width:40,
            items: [{
                icon: 'edit-icon.png',  // Use a URL in the icon config             
                tooltip: 'Edit',
                handler: function(grid, rowIndex, colIndex) {
                    var rec = grid.getStore().getAt(rowIndex);
                    alert("Edit " + rec.get('name'));
                }
            }]
        },
        {
            xtype:'actioncolumn', 
            width:40,
            tdCls:'delete',
            items: [{
                icon: 'Delete-icon.png',  // Use a URL in the icon config
                tooltip: 'Delete',
                handler: function(grid, rowIndex, colIndex) {
                    var rec = grid.getStore().getAt(rowIndex);
                    //rec.store.remove();
                    alert("Delete " + rec.get('name'));
                    grid.getStore().remove(rec); 
                    //grid.getStore().removeAt(rowIndex);
                }
            }]
        }
    ]
});
});


来源:https://stackoverflow.com/questions/14661949/how-to-edit-delete-a-row-in-a-grid-model-using-a-button-inside-the-gird-rows

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!