Javascript-форум (https://javascript.ru/forum/)
-   Dojo toolkit (https://javascript.ru/forum/dojotoolkit/)
-   -   Dojo/store/Memory объект как store для DataGrid (https://javascript.ru/forum/dojotoolkit/33630-dojo-store-memory-obekt-kak-store-dlya-datagrid.html)

abstract 30.11.2012 13:08

Dojo/store/Memory объект как store для DataGrid
 
Можно ли использовать объект Memory в качестве параметра store для DataGrid? На сколько я понимаю, вектор развития dojo toolkit в дальнейшем исключает использование объектов из dojo/data (Deprecated, dojo/store will eventually replace the dojo/data API.). В связи с этим вопрос: можно ли использовать dojo/store объекты в качестве источника данных для DataGrid?

burashka 03.12.2012 13:58

DataGrid вообще довольно мертвая штука. Сейчас наиболее популярен dgrid:
http://dojofoundation.org/packages/d...s/hello_dgrid/
И, как видно из примеров, он умеет кушать массивы в чистом виде. Т.е. если Memory вам был нужен только для этого, то можно обойтись и без него.

В то, что Dojo целиком от data/store откажется, верится слабо, по скольку как иначе работать с большими объемами данными через JsonRest не очень понятно. Можно, пожалуйста, ссылку откуда цитата?

abstract 03.12.2012 17:11

Цитата:

Сообщение от burashka (Сообщение 219275)
Можно, пожалуйста, ссылку откуда цитата?

Да, конечно - здесь
Memory как таковой мне не нужен, просто возникла необходимость реализовать некислый функционал, а для тренировки самое то. А так да.. предполагаю использовать JSON.

burashka 03.12.2012 17:22

а. Все правильно. Я не так вас понял. dojo/data даже и не встречал особо. Сам всегда использую модули из dojo/store.

abstract 03.12.2012 19:56

Цитата:

Сообщение от burashka (Сообщение 219371)
а. Все правильно. Я не так вас понял. dojo/data даже и не встречал особо. Сам всегда использую модули из dojo/store.

А мне показалось наоборот...все примеры через data, а у меня storage:Memory при инициализации таблицы ведет к ошибке.

burashka 03.12.2012 20:43

Попробуйте dgrid. Может DataGrid такой же деприкейт как и dojo/data. если все-равно будет фигня - пишите пример, посмотрим

abstract 08.02.2013 11:50

Цитата:

Сообщение от burashka (Сообщение 219394)
Попробуйте dgrid. Может DataGrid такой же деприкейт как и dojo/data. если все-равно будет фигня - пишите пример, посмотрим

С документацией- беда... Вот тут чего-то не хватает
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Dgrid TEST!</title>
</head>
<body>
<script src="JS/dojo-release-1.8.1-src/dojo/dojo.js" data-dojo-config="async:true">	
</script>
<style>
.dgrid-content-first{
		background: red;
	}
</style>
<script>
			require(["dgrid/Grid","dojo/store/Memory","dojo/domReady!"], function(Grid,Memory){
    var columns = [
    
    	{	
        	field: "vin",
            label: "VIN_"
        },
        {
        	field: "odo",
            label: "odometer"
        }
        
    ];
    var subrows=[
    	{	field:"sub",
    		label:"AKA"
    	}
    ]
    var data_odo= [{"vin":"102301","odo":"2300"},
												{"vin":"56435","odo":"4567"}];
								var mystore=new Memory({idProperty:"vin", data: data_odo});
								
								alert("А это типа объект стор" +mystore.get("102301"));
    var grid = new Grid({
    						columns:columns,
    						//subRows:subrows, //свойства таблицы
    					  	store:mystore
    						}, 
    "grid"); // attach to a DOM id
    grid.startup();
});
	</script>
	<div id="grid"></div>

</body>
</html>

Отображается пустая таблица.

abstract 08.02.2013 17:12

Точно, отсутствие документации- зло... Я так выяснил методом проб и ошибок,что в случае использования источника данных *store следует использовать конструктор OnDemandGrid.
Рабочий код:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Dgrid TEST!</title>
</head>
<body>
<script src="JS/dojo-release-1.8.1-src/dojo/dojo.js" data-dojo-config="async:true">	
</script>
<style>
.dgrid-content-first{
		background: red;
	}
</style>
<script>
			require(["dgrid/OnDemandGrid","dojo/store/Memory","dojo/domReady!"], function(OnDemandGrid,Memory){
    var columns = [
    
    	{	
        	field: "vin",
            label: "VIN_"
        },
        {
        	field: "odo",
            label: "odometer"
        }
         
    ];
    var subrows=[
    	{	field:"sub",
    		label:"AKA"
    	}
    ]
    var data_odo= [{"vin":"102301","odo":"2300"},
												{"vin":"56435","odo":"4567"}];
								var mystore=new Memory({idProperty:"vin", data: data_odo});
								
								alert("А это поле odo объекта стор: " +mystore.get("102301")["odo"]);
    var grid = new OnDemandGrid({
    						//subRows:subrows, //свойства таблицы
    					  	store:mystore,
    					  	columns:columns
    						}, 
    "grid"); // attach to a DOM id
    grid.startup();
});
	</script>
	<div id="grid"></div>

</body>
</html>


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