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?
|
DataGrid вообще довольно мертвая штука. Сейчас наиболее популярен dgrid:
http://dojofoundation.org/packages/d...s/hello_dgrid/ И, как видно из примеров, он умеет кушать массивы в чистом виде. Т.е. если Memory вам был нужен только для этого, то можно обойтись и без него. В то, что Dojo целиком от data/store откажется, верится слабо, по скольку как иначе работать с большими объемами данными через JsonRest не очень понятно. Можно, пожалуйста, ссылку откуда цитата? |
Цитата:
Memory как таковой мне не нужен, просто возникла необходимость реализовать некислый функционал, а для тренировки самое то. А так да.. предполагаю использовать JSON. |
а. Все правильно. Я не так вас понял. dojo/data даже и не встречал особо. Сам всегда использую модули из dojo/store.
|
Цитата:
|
Попробуйте 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> Отображается пустая таблица. |
Точно, отсутствие документации- зло... Я так выяснил методом проб и ошибок,что в случае использования источника данных *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, время: 14:16. |