ExtJS Gridpanel选择了行

时间:2011-04-28 13:00:20

标签: extjs

我使用Checkboxes设计ExtJs Gridpanel ... 如何获取检查记录以保存数据

2 个答案:

答案 0 :(得分:1)

使用getSelections获取所有选定的记录,使用getSelected获取第一条记录。

var selected = checkBoxSelectionModelObj.getSelections();

for (var i = 0; i < selected.length; i++)
{
    alert(selected[i].data.code);
}

答案 1 :(得分:1)

在ExtJs中,docs提供了在网格 grid.getSelection()中获取所选记录的方法。您可以参考ExtJs docs

我已经创建了一个小型演示来向您展示它是如何工作的。 Sencha fiddle example

var store = Ext.create('Ext.data.Store', {
        fields: ['name', 'email', 'phone'],
        data: [{
            name: 'Lisa',
            email: 'lisa@simpsons.com',
            phone: '555-111-1224'
        }, {
            name: 'Bart',
            email: 'bart@simpsons.com',
            phone: '555-222-1234'
        }, {
            name: 'Homer',
            email: 'homer@simpsons.com',
            phone: '555-222-1244'
        }, {
            name: 'Marge',
            email: 'marge@simpsons.com',
            phone: '555-222-1254'
        }, {
            name: 'AMargeia',
            email: 'marge@simpsons.com',
            phone: '555-222-1254'
        }]
    });

    Ext.create('Ext.grid.Panel', {
        title: 'Simpsons',
        store: store,
        id: 'testGrid',
        columns: [{
            text: 'Name',
            dataIndex: 'name'
        }, {
            text: 'Email',
            dataIndex: 'email',
            flex: 1
        }, {
            text: 'Phone',
            dataIndex: 'phone'
        }],
        height: 200,
        width: 400,
        renderTo: Ext.getBody(),
        selModel: {
            checkOnly: false,
            injectCheckbox: 'last',
            mode: 'SIMPLE'
        },
        selType: 'checkboxmodel',
        buttons: [{
            text: 'Select All',
            handler: function () {
                Ext.getCmp('testGrid').getSelectionModel().selectAll();
            }
        }, {
            text: 'Deselect All',
            handler: function () {
                Ext.getCmp('testGrid').getSelectionModel().deselectAll();
            }
        },{
            text:'Print Selected Recod',
            handler:function(){
                var selection = Ext.getCmp('testGrid').getSelection();
                if(selection.length){
                    let name='';
                    selection.map(item=>{
                        name+=item.get('name')+'<br>';
                    });
                    Ext.Msg.alert('Selected Record',name);
                }else{
                    Ext.Msg.alert('Error','Please select record');
                }
            }
        }]
    });