Ext JS 4.1 - 如何访问网格中的单元格元素

时间:2014-07-14 21:55:11

标签: extjs

我有带复选框的网格。默认情况下,将根据数据库中的数据选择一些复选框。我使用渲染器方法来创建HTML复选框。

现在,用户可以选择新的复选框并将该数据提交给服务器。要提交此数据,我如何知道是否选中了特定的复选框?我的意思是如何获得特定的细胞元素。

更新:

这是我用来添加复选框的代码。

renderer: function (value, cell) {
                            if(value == 'Y')
                                return '<input type="checkbox" name="mycheckbox" checked="true"/>';
                            else
                                return '<input type="checkbox" name="mycheckbox"/>';
                        }

现在我需要检查所有复选框是否已选中。

我尝试使用下面的代码,但这是给出复选框的值,而不是检查它。

store.getAt(1).get(dataIndex);

由于 拉维

1 个答案:

答案 0 :(得分:0)

不要使用自己的复选框,只需使用Check column它会在选中时更新基础字段。

请参阅https://fiddle.sencha.com/#fiddle/7n0

var store = Ext.create('Ext.data.Store', {
    fields : ['name', 'email', 'phone', 'active'],
    data   : {
        items : [
            { name : 'Lisa',  email : 'lisa@simpsons.com',  phone : '555-111-1224', active : true  },
            { name : 'Bart',  email : 'bart@simpsons.com',  phone : '555-222-1234', active : true  },
            { name : 'Homer', email : 'home@simpsons.com',  phone : '555-222-1244', active : false },
            { name : 'Marge', email : 'marge@simpsons.com', phone : '555-222-1254', active : true  }
        ]
    },
    proxy  : {
        type   : 'memory',
        reader : {
            type : 'json',
            root : 'items'
        }
    }
});

Ext.create('Ext.grid.Panel', {
    title    : 'Simpsons',
    height   : 200,
    width    : 400,
    renderTo : Ext.getBody(),
    store    : store,
    columns  : [
        { text : 'Name', dataIndex : 'name' },
        { text : 'Email', dataIndex : 'email', flex : 1 },
        { text : 'Phone', dataIndex : 'phone' },
        { xtype : 'checkcolumn', text : 'Active', dataIndex : 'active' }
    ]
});


// Show the modified records
 var recs = store.getRange();
 var data = recs.map(function(o){return o.data;});
 alert(Ext.encode(data));