Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Динамические колонки Ext.grid.Panel (https://javascript.ru/forum/extjs/28948-dinamicheskie-kolonki-ext-grid-panel.html)

khusamov 08.06.2012 02:15

Динамические колонки Ext.grid.Panel
 
Здравствуйте!

Как сделать Ext.grid.Panel, у которого после создания можно было бы менять колонки?

То есть создал я к примеру таблицу с одним набором колонок (и соответствующим Store+Model). А потом хочу загрузить таблицу с другим набором колонок, но не хочу удалять этот grid.

Пока я не нашел методов, чтобы на ходу можно было бы менять модель или ее содержимое, менять Store у grid-а.

nekto_O 08.06.2012 08:20

<!DOCTYPE html>
<html>
<head>
<title>demo</title>
<script src='http://dev.sencha.com/deploy/ext-4.0.7-gpl/ext-all.js'></script>
<link rel="stylesheet" href="http://dev.sencha.com/deploy/ext-4.0.7-gpl/resources/css/ext-all.css">
<script>

Ext.onReady(function() {

var store = Ext.create('Ext.data.Store', {
    fields:['name', 'email', 'phone'],
    proxy: {
        type: 'memory',
        reader: {
            type: 'json',
            root: 'items'
        }
    }
});

Ext.create('Ext.grid.Panel', {
    title: 'test',
    store: store,
    columns: [
        { header: 'Name',  dataIndex: 'name' },
        { header: 'Email', dataIndex: 'email', flex: 1 },
        { header: 'Phone', dataIndex: 'phone' }
    ],
    height: 200,
    width: 400,
    renderTo: Ext.getBody(),
    tbar: [{
        text: 'изменить поля' ,
        handler: function() {
            var gd = this.up('grid');
            gd.reconfigure(gd.getStore(), [
                { header: 'aaaa',  dataIndex: '1111' },
                { header: 'bbbb', dataIndex: '2222', flex: 1 },
                { header: 'cccc', dataIndex: '3333' }
            ]);
        }
    }]
});

});                    
 
</script>
</head>
  <body></body>
</html>

khusamov 08.06.2012 15:30

Ни за что не подумал что это находится в методе reconfigure()...

Спасибо!

Сейчас попробую найти подобные методы в Store и в Model.


Часовой пояс GMT +3, время: 05:00.