2015-12-31 5 views
0

у меня есть сетка дерева на основе следующего кода:ExtJS6 TreeGrid Не Отображение дочерних узлов

Ext.application({ 
    name : 'Fiddle', 
    launch : function() { 
     var treeData = [{ 
      mtype: 'InsDataModel', 
      recordid: '1', 
      companyname: 'Company 1', 
      children:[{   
       mtype: 'PlnDataModel', 
       recordid: '1A', 
       planname: 'Plan 1A' 
      },{ 
       mtype: 'PlnDataModel',     
       recordid: '1B', 
       planname: 'Plan 1B' 
      }] 
     },{ 
      mtype: 'InsDataModel',    
      recordid: '2', 
      companyname: 'Company 2', 
      children: [] 
     },{ 
      mtype: 'InsDataModel',    
      recordid: '3', 
      companyname: 'Company 3', 
      children:[{ 
       mtype: 'PlnDataModel',     
       recordid: '3A', 
       planname: 'Plan 3A' 
      },{ 
       mtype: 'PlnDataModel',     
       recordid: '3B', 
       planname: 'Plan 3B' 
      },{ 
       mtype: 'PlnDataModel',     
       recordid: '3C', 
       planname: 'Plan 3C' 
      },{ 
       mtype: 'PlnDataModel',     
       recordid: '3D', 
       planname: 'Plan 3D' 
      },{ 
       mtype: 'PlnDataModel',     
       recordid: '3E', 
       planname: 'Plan 3E'     
      }] 
     }]; 
     Ext.define('InsDataModel',{ 
      extend: 'Ext.data.TreeModel', 
      childType: 'PlnDataModel', 
      fields:[ 
       {name: 'recordid'}, 
       {name: 'text', mapping:'companyname'} 
      ]    
     }); 
     Ext.define('PlnDataModel',{ 
      extend: 'Ext.data.TreeModel', 
      fields:[ 
       {name: 'recordid'}, 
       {name: 'text', mapping:'planname'} 
      ] 
     }); 
     Ext.define('InsDataStore',{ 
      extend: 'Ext.data.TreeStore', 
      model: 'InsDataModel', 
      proxy:{     
       reader:{typeProperty: 'mtype'} 
      }, 
      data:treeData,    
     }); 
     Ext.define('InsDataGrid',{ 
      extend: 'Ext.tree.Panel', 
      store: { 
       model: 'InsDataModel', 
       proxy:{   
        type: 'memory', 
        reader:{typeProperty: 'mtype'} 
       }, 
       data:treeData 
      }, 
      title: 'My tree Demo', 
      renderTo: Ext.getBody(), 
      width: 400,    
      height: 600,    
      useArrows: true, 
      columns:[{ 
       text: 'Network', 
       dataIndex: 'text', 
       flex: 1 
      }] 
     });    
     var newTree = Ext.create('InsDataGrid').show(); 
    } 
}); 

который также расположен по адресу: https://fiddle.sencha.com/#fiddle/136t

Проблема Я бегу в это дочерние узлы не будут отображать текст при расширении родительского узла. Может кто-то, пожалуйста, взгляните на код и сообщите мне, что я делаю неправильно. Спасибо.

+0

Привет, Митчелл, Мое приложение работает с удаленными данными. По какой-то причине я не мог заставить url data1.json работать в скрипке, поэтому решил сделать данные локальными. Проблема все еще сохраняется с моими удаленными данными. Я полагаю, что это будет работать и с удаленными данными? – user1532602

ответ

1

mapping как строка требует от читателя читать удаленный ответ для создания функций для выполнения сопоставления. Кроме того, вы должны удалить childType от InsDataModel модель: https://fiddle.sencha.com/#fiddle/136u

+0

Эй, Митчелл. Спасибо за ответ. Пара вещей. Данные должны быть удалены (я не мог заставить скрипку работать с удаленными данными, поэтому я использовал локальные данные). Дерево должно быть неоднородным - я буду обновлять две разные модели. Я понимаю, что я не делал этого очевидным с данными, которые я использовал, но я старался быть кратким в этом примере. – user1532602

+0

@ user1532602 Я обновил свою скрипту, чтобы использовать удаленную загрузку детей и сохранил ваши гетерогенные модели. https://fiddle.sencha.com/#fiddle/136u –

+0

Спасибо, Митчелл. Всегда огромная помощь! – user1532602