Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.03.2013, 13:45
Интересующийся
Отправить личное сообщение для Aries Посмотреть профиль Найти все сообщения от Aries
 
Регистрация: 02.02.2013
Сообщений: 26

Динамическое создание колонок в гриде
Взял за основу пример из сайта ExtJS. Немного его модифицировав, что бы показать проблему.
Стоит задача, определять колонки в функции initComponent.
При этом, если запустить, получаю ошибку

TypeError: Cannot call method 'insert' of undefined

Подскажите, что делаю не так? И может это можно другим путем решить?

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

Ext.create('Ext.grid.Panel', {
    title: 'Simpsons',
    initComponent: function() {
      this.columns = [
          {text: 'Name',  dataIndex: 'name'},
          {text: 'Email', dataIndex: 'email', flex: 1},
          {text: 'Phone', dataIndex: 'phone'}
      ];
      this.callParent(arguments);
    },
    store: 'simpsonsStore',
    height: 200,
    width: 400,
    renderTo: Ext.getBody()
});
Ответить с цитированием
  #2 (permalink)  
Старый 12.03.2013, 17:59
Интересующийся
Отправить личное сообщение для Aries Посмотреть профиль Найти все сообщения от Aries
 
Регистрация: 02.02.2013
Сообщений: 26

Кстати, проблема возникает даже при вот таком коде

Ext.create('Ext.grid.Panel', {
    title: 'Simpsons',
    initComponent: function() {
      this.callParent(arguments);
    },
    columns: [
        {text: 'Name',  dataIndex: 'name'},
        {text: 'Email', dataIndex: 'email', flex: 1},
        {text: 'Phone', dataIndex: 'phone'}
    ]
    store: 'simpsonsStore',
    height: 200,
    width: 400,
    renderTo: Ext.getBody()
});


т.е как только появляется метод initComponent и все - ошибка.

Выкрутился таким путем

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


Для чего все это надо было. В некоторых случаях идет динамическое создание грида на сервере.
Но так как возвращается к нам JSON то надо было где-то сделать динамическое создание колонок итд.
Оп идее это должно работать в initComponent, а не работало.
Ответить с цитированием
  #3 (permalink)  
Старый 14.03.2013, 17:17
VKS VKS вне форума
Профессор
Отправить личное сообщение для VKS Посмотреть профиль Найти все сообщения от VKS
 
Регистрация: 24.09.2010
Сообщений: 178

http://www.sencha.com/forum/showthre...-dynamic-model
Ответить с цитированием
  #4 (permalink)  
Старый 16.03.2013, 15:53
Интересующийся
Отправить личное сообщение для Aries Посмотреть профиль Найти все сообщения от Aries
 
Регистрация: 02.02.2013
Сообщений: 26

Сообщение от VKS Посмотреть сообщение
http://www.sencha.com/forum/showthre...-dynamic-model
Спасибо за хорошую ссылку!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое создание iframe в Firefox mrbean11 Firefox/Mozilla 8 02.11.2012 21:23
Помогите. Динамическое создание элементов! frundik Элементы интерфейса 2 21.06.2012 20:16
Динамическое создание окошек truetrix jQuery 1 22.03.2011 12:46
динамическое создание тадлицы magistr_bender Элементы интерфейса 14 23.07.2009 17:36
Динамическое создание событий в цикле IcyBox Общие вопросы Javascript 2 01.06.2009 08:42