【问题标题】:Get checkbox value inside grid with selectionModel使用 selectionModel 获取网格内的复选框值
【发布时间】:2018-08-29 21:00:25
【问题描述】:

如何从 Ext.grid.Panel 中的 selectionModel 中获取复选框的值?

我在 grid.getView().getRow(0).cells[0] 中找不到属性

【问题讨论】:

  • 复选框是作为选择模型的一部分提供的,因此您要抓取选定的行。
  • 请查看我对 Saurabh Nemade 的回复,以修复他的回答中的错误

标签: extjs extjs6 extjs6-classic


【解决方案1】:

您可以使用 selModel 获取选定的记录,如下所示

Ext.application({
    name: 'Fiddle',

    launch: function () {

        Ext.define('User', {
            extend: 'Ext.data.Model',
            fields: ['name', 'email', 'phone']
        });

        var userStore = Ext.create('Ext.data.Store', {
            model: 'User',
            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: 'Shreya',
                    email: 'marge@simpsons.com',
                    phone: '555-222-1254'
                }

            ]
        });

        Ext.create({
                xtype: 'panel',
                title: 'Grid Panel',
                renderTo: Ext.getBody(),
                items: [{
                    xtype: 'grid',
                    id: 'mygrid',
                    store: userStore,
                    storeId: 'mystore',
                    width: 400,
                    height: 200,
                    selModel: {
                        selType: 'checkboxmodel',
                        checkOnly: true,
                        injectCheckbox: 0,
                        showHeaderCheckbox: false,
                        listeners: {

                        }
                    },
                    title: 'Application Users',
                    columns: [{
                        text: 'Name',
                        width: 100,
                        sortable: false,
                        hideable: false,
                        dataIndex: 'name'
                    }, {
                        text: 'Email Address',
                        width: 150,
                        dataIndex: 'email',
                        hidden: true
                    }, {
                        text: 'Phone Number',
                        flex: 1,
                        dataIndex: 'phone'
                    }]
                },{
                    xtype: 'panel',
                    items: [{
                        xtype: 'button',
                        text: 'get selected record',
                        handler: function() {
                            var myGrid = Ext.getCmp('mygrid');
                            var selections = myGrid.getSelections();
                            console.log(selections);
                        }
                    }]
                }]
            })
            //Ext.Msg.alert('Fiddle', 'Welcome to Sencha Fiddle!');
    }
});

链接到工作小提琴: https://fiddle.sencha.com/#view/editor&fiddle/2l15

【讨论】:

  • 你的答案是对的,但它有一个错误。 myGrid.getSelections() 会抛出错误:Uncaught TypeError: myGrid.getSelections is not a function 你可以通过这样做来解决这个问题:myGrid.getSelectionModel().getSelection(), 或者更好:Ext.pluck(myGrid.getSelectionModel().getSelection(), "data")
猜你喜欢
  • 2011-03-03
  • 1970-01-01
  • 2011-09-12
  • 2013-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-12
相关资源
最近更新 更多