Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Как в extJS5 создать простой пустой store? (https://javascript.ru/forum/extjs/53399-kak-v-extjs5-sozdat-prostojj-pustojj-store.html)

Risa 02.02.2015 17:05

Как в extJS5 создать простой пустой store?
 
В extJS3 это делалось так:

Ext.create('Ext.grid.Panel',{
store: new Ext.data.Store(),
Как это делать в ExtJS5? Правильно ли я понимаю, что обязательно задавать model и proxy? Какие создавать аналогичные тому, что было в ExtJS3?

skrudjmakdak 03.02.2015 09:04

в четверке эт делалось так:
<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>

Infarch 03.02.2015 13:19

Я и в пятерке так делаю.

novikov 03.02.2015 13:58

model автоматически создаётся на основе fields, proxy создаётся с типом memory

Risa 04.02.2015 19:27

Цитата:

Сообщение от skrudjmakdak
в четверке эт делалось так:

Это понятно, спасибо. Непонятно, что делать с new Ext.data.Store(). То есть без fields. Пока что написала Ext.create('Ext.data.Store', {fields:[]}).

Ex_Soft 05.02.2015 11:00

Может Вы, все-таки, наконец-то, огласите, так сказать, конечную цель предприятия? Задлянафига Вам грид с пустым store'м? Мо, Вы идете не тем путем?

novikov 05.02.2015 15:19

Цитата:

Сообщение от Risa
Непонятно, что делать с new Ext.data.Store(). То есть без fields

Да, это правда как-то неожиданно. Создавая грид, вы должны указать настройки columns. У каждой колонки есть свойство dataIndex, которое привязывает колонку к полю стора по имени. Заполняете стор данными, автоматически заполнится и грид. А что такое грид без данных? ...Для вёрстки существуют контейнеры...

Risa 05.02.2015 22:18

Цитата:

Сообщение от novikov (Сообщение 355196)
Да, это правда как-то неожиданно. Создавая грид, вы должны указать настройки columns. У каждой колонки есть свойство dataIndex, которое привязывает колонку к полю стора по имени. Заполняете стор данными, автоматически заполнится и грид. А что такое грид без данных? ...Для вёрстки существуют контейнеры...

Грид заполняется данными из бд. То есть пока не было запроса к бд грид пустой и даже названия колонок нам не известны.

novikov 06.02.2015 12:32

Ага. Понятно. Динамически гриды, значит, создавать будете! Ну тогда вам после запроса к бд, нужно выполнить реконфиг существующей таблицы.

Ext.grid.Panel.reconfigure([store], [columns])

Либо создать обработчик события в каком-нибудь контроллере, который запросит через Ext.Ajax.request({}) данные с сервера, динамически сформирует конфиг для стора и грида и сокрмит это всё в Ext.create(). Потом можно будет найти контейнер грида в приложении, удалить из него старый грид (или панель-заглушку) и поставить на его место новый грид.


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