Ext Js - TreeStore在使用ASP.net WCF服务时不加载数据

时间:2012-07-16 06:11:49

标签: wcf extjs4.1

我正在尝试构建一个动态树。我从C#WCF服务获取数据。它返回给我JSON数据,但数据没有反映在树中。 我正在使用EXTJS 4。

.Js代码 -

Ext.require([
    'Ext.tree.*',
    'Ext.data.*',
    'Ext.tip.*'
 ]);    

Ext.onReady(function () {
    Ext.QuickTips.init();

var store = Ext.create('Ext.data.TreeStore', {
        proxy: {
                 type: 'ajax',
                 url: 'Services/InfographicsDataService.svc/GetTree'
               },
        root: {
                 text: 'Ext JS',
                 id: 'src',
                 expanded: true
              },
      reader: {
                 type: 'json',
                 root: 'd'
              }
    }); //  End of store code       

    var tree = Ext.create('Ext.tree.Panel', {
             store: store,
             viewConfig: 
             {
                plugins:{ ptype: 'treeviewdragdrop' }
             },
        renderTo: 'tree-div',
        height: 300,
        width: 250,
        title: 'Files',
        useArrows: true
    }); // End of tree    
}); // End of ready function   

这是我的服务端::-

的代码
[OperationContract]
[WebGet]
 public List<TreeNode> GetTree()
 {
   List<TreeNode> nodes = new List<TreeNode>();
      nodes.Add(new TreeNode() { id="src/ModelManager.js", text = 
     "ModelManager.js" });

       nodes.Add(new TreeNode() { id="src/data", text = "data" });
      nodes.Add(new TreeNode() { id="src/draw", text = "draw" });
      return nodes;
 }

Json由wcf service返回 -

{"d":[
  {
    "__type":"TreeNode:#Infographics.Services.Model",
    "id":"src\/ModelManager.js",
    "leaf":false,
    "text":"ModelManager.js"    
  },
 { 
   "__type":"TreeNode:#Infographics.Services.Model",
   "id":"src\/data",
   "leaf":false,
   "text":"data"
 },
 {
   "__type":"TreeNode:#Infographics.Services.Model",
   "id":"src   \/draw",
   "leaf":false,
   "text":"draw"
 }]
}

调用将转到服务器并返回数据但不在树中添加节点 Page只显示根Extjs节点。

最初我认为,这只是读者的根属性,我需要设置为“d”,但还有一些我缺少的东西。

有人可以帮助我找到我正在犯的小错误吗?

1 个答案:

答案 0 :(得分:0)

你可以改变这样的商店并尝试,

var store = Ext.create('Ext.data.TreeStore', 
{
  proxy: 
  {
     type: 'ajax',
     url: 'Services/InfographicsDataService.svc/GetTree',
     reader: 
     {
        type: 'json',
        root: 'd'
     }
  },
  root:
  {
     text: 'Ext JS',
     id: 'src',
     expanded: true
  }  
});