2015-11-02 14 views
0

Я новичок в JavaScript, додзе dgrid, dstore и все еще борются, чтобы правильно переписать методы собственности магазина:Dgrid не делает структуру дерева правильно

Моя структура данных:

[{"id":"T1","name":"Test","desc":"Rectangular 1",qty":null,"parent":null},  
{"id":"C1","name":"Test 2","qty":0.0,"parent":"T1"},  
{"id":"S1","name":"Test 3","qty":6.0,"parent":"C1"},  
{"id":"S2","name":"Test 4","qty":6.0,"parent":"C1"},  
{"id":"S3","name":"Test 5","qty":6.0,"parent":"C1"} 
] 


     var StandardGrid = declare([Grid, Keyboard, Selection, Selector, Editor, dgridTree]); 
     var CustomStore= declare([Rest, dstoreTree]); 

     var myStore = new CustomStore({ 
      target: "./data.json", 
      idProperty: "id", 
      getRootCollection: function() { 
       return this.root.filter({ parent: null });     
      }, 
      getChildren: function (object) { 
       return object.parent = object.id; 
      }, 
      mayHaveChildren: function (object) { 
       return object.parent == null; 
      }, 
     }); 

     var treeGrid = window.treeGrid = new StandardGrid({ 
      collection: myStore.getRootCollection(), 
      columns: [ 
       { renderExpando: true, label: "Name", field: "name", sortable: false }, 
       { label: "Quantity", field: "qty" }, 
      ] 
     }, "treeGrid"); 

     treeGrid.startup(); 

Я также попытался обратиться к приведенной ниже ссылке, но до сих пор не могу понять: dgrid 0.4.0 tree looks flat before user interacts

Цените и благодарите заранее.

+0

Ваши данные не действительны, отсутствует только один номер " –

+0

Когда вы говорите, что это« неверный рендеринг », то как * это * его рендеринг против того, как * должен * быть рендерингом? Конечно, похоже, что ваша реализация' getChildren' неверно, и если ваши данные возвращаются со всеми пунктами одновременно, вы, вероятно, не хотите использовать 'Rest' ... –

+0

Дерево должно иметь 3-слой, где root (id = T1) (id = C1) и, наконец, третий уровень (id = S1, S2, S3). В настоящее время он перечисляет все данные без дерева. Я попробую заменить Rest другим, как память. Не могли бы вы также рассказать мне, что случилось с моя реализация getChildren с моим текущим набором данных? – hamming122

ответ

0

Я, наконец, создал иерархию дерева Dgrid, которая работает после хранения Restiture в магазине RequestMemory и добавила дополнительное поле hashildren в набор данных, который будет использоваться в методе mayHaveChildren, а также getChildren после консультации с Кеном Франкеро.

{ "идентификатор": "С1", "название": "Тест 2", "кол-во": 0.0, "родитель": "Т1", "hasChidlren": истинная}

 var StandardGrid = declare([Grid, Keyboard, Selection, Selector, Editor, Tree]); 
     var MemoryTreeStore = declare([RequestMemory, TreeStore]); 

     var myStore = new MemoryTreeStore({ 
      target: "./data.json", 
      idProperty: "id", 
      getRootCollection: function() { 
       return this.root.filter({parent: null});      
      }, 
      getChildren: function (object) { 
       return this.root.filter({parent: object.id}); 
      }, 
      mayHaveChildren: function (object) { 
       return object.parent == null || object.hasChildren == true; 
      } 
     }); 

Я думаю, что нужно подумать о том, как они структурируют свой набор данных дерева, чтобы работать, чтобы перезаписать методы dstore/Tree.

 Смежные вопросы

  • Нет связанных вопросов^_^