У меня очень похожая проблема до this.dgrid Сначала рендеринг рендеринга
Мои симптомы одинаковы (родители и дети сначала оказываются плоскими. Вы можете «развернуть» родителей, чтобы некоторые из них отображались надлежащим образом под ними, а затем вы можете свернуть их снова, чтобы получить дерево чтобы показать, как это должно быть), но предоставленное решение (pass store.getRootCollection() в сетку вместо просто магазина) не работает для меня. Если я это сделаю, я получаю только заголовки.
Для начала я попытаюсь заставить его работать, используя код, показанный в dgrid laboratory (просто отметьте «дерево» в «Сетка»), чтобы устранить столько ошибок с моей стороны, сколько я могу.
Единственное, что может показаться в моем коде из моего кода, это то, что я делаю эту сетку внутри настраиваемого виджета, и я загружаю несколько других модулей (я знаю, что они мне понадобятся позже)
define(["dojo/_base/declare",
"dojo/_base/lang",
"dojo/dom",
"dojo/dom-construct",
"dojo/text!./templates/DefaultsWidget.html",
"dijit/_WidgetBase",
"dijit/_TemplatedMixin",
"dijit/_WidgetsInTemplateMixin",
"dijit/TitlePane",
"dijit/layout/ContentPane",
"dgrid/OnDemandGrid",
"dgrid/Keyboard",
"dgrid/Selection",
"dgrid/extensions/DijitRegistry",
"dgrid/Editor",
"dgrid/Tree",
"dstore/Memory",
"dstore/Trackable",
"dstore/Tree",
"dojo/domReady!"],
\t \t function(/*DOJO:*/declare, lang, dom, domConstruct, template,
\t \t \t \t /*DIJIT*/_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, TitlePane,ContentPane,
\t \t \t \t /*DGRID*/OnDemandGrid, Keyboard, Selection, DigitRegistry, Editor, Tree,
\t \t \t \t /*DSTORE*/Memory, Trackable, TreeStoreMixin){
\t \t \t return declare("company.widgets.DefaultsWidget", [_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin], {
\t \t \t \t
\t \t \t \t //The template defined with dojo.text
\t \t \t \t templateString: template, \t \t \t \t
\t \t \t \t grid: null,
\t \t \t \t
\t \t \t \t postCreate: function(){
\t \t \t \t \t
\t \t \t \t \t var testData = [];
\t \t \t \t \t var column;
\t \t \t \t \t var i;
\t \t \t \t \t var item;
\t \t \t \t \t for (i = 0; i < 50; i++) {
\t \t \t \t \t \t item = {};
\t \t \t \t \t \t for (column in { First_Name: 1, Last_Name: 1 }) {
\t \t \t \t \t \t \t item.id = i;
\t \t \t \t \t \t \t item[column] = column + '_' + (i + 1);
\t \t \t \t \t \t }
\t \t \t \t \t \t if (i > 1) {
\t \t \t \t \t \t \t item.hasChildren = false;
\t \t \t \t \t \t \t item.parent = i % 2;
\t \t \t \t \t \t }
\t \t \t \t \t \t testData.push(item);
\t \t \t \t \t }
\t \t \t \t \t
\t \t \t \t \t var store = new (declare([Memory, Trackable, TreeStoreMixin]))({
\t \t \t \t \t \t data: testData
\t \t \t \t \t });
\t \t \t \t \t
\t \t \t \t \t // Instantiate grid
\t \t \t \t \t this.grid = new (declare([OnDemandGrid, Tree]))({
\t \t \t \t \t \t collection: store,
\t \t \t \t \t \t columns: {
\t \t \t \t \t \t \t First_Name: {
\t \t \t \t \t \t \t \t label: 'First Name',
\t \t \t \t \t \t \t \t renderExpando: true
\t \t \t \t \t \t \t },
\t \t \t \t \t \t \t Last_Name: {
\t \t \t \t \t \t \t \t label: 'Last Name'
\t \t \t \t \t \t \t }
\t \t \t \t \t \t },
\t \t \t \t \t }, this.testGrid);
\t \t \t \t \t
\t \t \t \t },
\t \t \t \t startup: function() {
\t \t \t \t \t this.grid.startup();
\t \t \t \t }
\t \t \t }); //return declare
}//function
);//define
Это как сетка отображается с коллекции: магазин,
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, или если я пропустил какие-либо рекомендации SO или ettiquette, и я буду рад редактировать, перефразировать и т. Д.