02.02.2015, 17:05
|
Аспирант
|
|
Регистрация: 21.10.2014
Сообщений: 47
|
|
Как в extJS5 создать простой пустой store?
В extJS3 это делалось так:
Ext.create('Ext.grid.Panel',{
store: new Ext.data.Store(),
Как это делать в ExtJS5? Правильно ли я понимаю, что обязательно задавать model и proxy? Какие создавать аналогичные тому, что было в ExtJS3?
|
|
03.02.2015, 09:04
|
Профессор
|
|
Регистрация: 27.04.2012
Сообщений: 1,410
|
|
в четверке эт делалось так:
<html>
<head>
<link href="http://docs.sencha.com/extjs/4.2.2/extjs-build/resources/css/ext-all-gray-debug.css" rel="stylesheet"/>
<script src="http://docs.sencha.com/extjs/4.2.2/extjs-build/ext-all.js"></script>
<script>
var myStore = Ext.create('Ext.data.Store', {
fields: ['id', 'data'],
data: [{
id: 1, data: 'data 1'
}, {
id: 2, data: 'data 2'
}]
});
console.log(myStore.getCount());
console.log(myStore.getAt(0).get('data'));
console.log(myStore.getAt(1).get('data'));
</script>
</head>
<body></body>
</html>
|
|
03.02.2015, 13:19
|
|
Профессор
|
|
Регистрация: 06.06.2014
Сообщений: 292
|
|
Я и в пятерке так делаю.
|
|
03.02.2015, 13:58
|
Профессор
|
|
Регистрация: 19.11.2012
Сообщений: 178
|
|
model автоматически создаётся на основе fields, proxy создаётся с типом memory
|
|
04.02.2015, 19:27
|
Аспирант
|
|
Регистрация: 21.10.2014
Сообщений: 47
|
|
Сообщение от skrudjmakdak
|
в четверке эт делалось так:
|
Это понятно, спасибо. Непонятно, что делать с new Ext.data.Store(). То есть без fields. Пока что написала Ext.create('Ext.data.Store', {fields:[]}).
|
|
05.02.2015, 11:00
|
|
Профессор
|
|
Регистрация: 19.12.2009
Сообщений: 164
|
|
Может Вы, все-таки, наконец-то, огласите, так сказать, конечную цель предприятия? Задлянафига Вам грид с пустым store'м? Мо, Вы идете не тем путем?
__________________
"Helo, word!" - 17 errors 56 warnings
Последний раз редактировалось Ex_Soft, 05.02.2015 в 11:03.
|
|
05.02.2015, 15:19
|
Профессор
|
|
Регистрация: 19.11.2012
Сообщений: 178
|
|
Сообщение от Risa
|
Непонятно, что делать с new Ext.data.Store(). То есть без fields
|
Да, это правда как-то неожиданно. Создавая грид, вы должны указать настройки columns. У каждой колонки есть свойство dataIndex, которое привязывает колонку к полю стора по имени. Заполняете стор данными, автоматически заполнится и грид. А что такое грид без данных? ...Для вёрстки существуют контейнеры...
|
|
05.02.2015, 22:18
|
Аспирант
|
|
Регистрация: 21.10.2014
Сообщений: 47
|
|
Сообщение от novikov
|
Да, это правда как-то неожиданно. Создавая грид, вы должны указать настройки columns. У каждой колонки есть свойство dataIndex, которое привязывает колонку к полю стора по имени. Заполняете стор данными, автоматически заполнится и грид. А что такое грид без данных? ...Для вёрстки существуют контейнеры...
|
Грид заполняется данными из бд. То есть пока не было запроса к бд грид пустой и даже названия колонок нам не известны.
Последний раз редактировалось Risa, 05.02.2015 в 22:22.
|
|
06.02.2015, 12:32
|
Профессор
|
|
Регистрация: 19.11.2012
Сообщений: 178
|
|
Ага. Понятно. Динамически гриды, значит, создавать будете! Ну тогда вам после запроса к бд, нужно выполнить реконфиг существующей таблицы.
Ext.grid.Panel.reconfigure([store], [columns])
Либо создать обработчик события в каком-нибудь контроллере, который запросит через Ext.Ajax.request({}) данные с сервера, динамически сформирует конфиг для стора и грида и сокрмит это всё в Ext.create(). Потом можно будет найти контейнер грида в приложении, удалить из него старый грид (или панель-заглушку) и поставить на его место новый грид.
|
|
|
|