2016-11-11 35 views
0

У меня очень похожая проблема до 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

Это как сетка отображается с коллекции: магазин,

enter image description here

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, или если я пропустил какие-либо рекомендации SO или ettiquette, и я буду рад редактировать, перефразировать и т. Д.

ответ

0

Кажется, что проблема, вызывающая отображение сетки что в корневых рядах не было parent: null. Код, отображаемый в Лаборатории, не работает как есть, и требует как исправления, которое я только что упомянул, так и исправления .getRootCollection() из вопроса, на который я ссылаюсь.