【问题标题】:how do I define a nested store for ext.js using ext.net如何使用 ext.net 为 ext.js 定义嵌套存储
【发布时间】:2013-02-06 20:54:46
【问题描述】:

平台 - MVC 项目中的 Ext.net 2.1。数据从 DirectMethod 以 json 形式返回,我正在绑定到客户端。

我正在返回包含多个表的数据集的结果,这些表之间定义了关系。我想将结果数据绑定到要在数据视图中使用的商店。我正在填充的第一个数据视图仅使用最高级别的数据。但是,当用户在数据视图中选择一条记录时,我想绑定到不同数据视图中的另一个模板以提供所有级别的信息。

Tables

Account
--- Addresses

(我现在将跳过另一个表)

这是我的模型和商店的定义:

@(Html.X().Model()
      .Name("SearchResults.Models.Address")
      .IDProperty("nafnmfuid")
      .Associations(assoc => assoc.Add(new BelongsToAssociation() {Model = "SearchResults.Models.Account"}))
      .Fields(
          new ModelField("nafnmfuid", ModelFieldType.Int),
          new ModelField("naftype"),
          new ModelField("nafadd1"),
          new ModelField("nafcity"),
          new ModelField("nafstate"),
          new ModelField("nafzip")
      ))

@(Html.X().Model()
    .Name("SearchResults.Models.Account")
    .IDProperty("nmfuid")
    .Associations(assoc => assoc.Add(new HasManyAssociation() {Name = "Addresses", Model = "SearchResults.Models.Address", AssociationKey = "Addresses", PrimaryKey = "nmfuid", ForeignKey = "nafnmfuid"}))
    .Fields(
        new ModelField("nmfuid", ModelFieldType.Int),
        new ModelField("AmfLastNamePrimary"),
        new ModelField("AmfFirstNamePrimary"),
        new ModelField("nmfid"),
        new ModelField("naftype"),
        new ModelField("nafadd1"),
        new ModelField("nafcity"),
        new ModelField("nafstate"),
        new ModelField("nafzip")
    )
)    

@(Html.X().Store()
            .ID("StoreSearchResults")
            .ModelName("SearchResults.Models.Account")
            .Reader(readers => readers.Add(Html.X().JsonReader()))
      )

我尝试将数据作为嵌套 json 以及 json 中的三个对象返回。

当我(在客户端)绑定数据时,我会在最高级别(帐户)中获得名为地址的新字段。但是,该字段是一个空数组。

当我查看 Account 记录的 RAW 属性时,我看到了所有嵌套数据。

这是由 Ext.net 生成的 ext.js 代码

   window.App.StoreSearchResults2 = Ext.create("Ext.data.Store", {
    model:Ext.define("SearchResults.Models.Address",  {
        extend: "Ext.data.Model"
        , fields:[ {
            name:"nafnmfuid"
            ,type:"int"
        }
        , {
            name:"naftype"
        }
        , {
            name:"nafadd1"
        }
        , {
            name:"nafcity"
        }
        , {
            name:"nafstate"
        }
        , {
            name:"nafzip"
        }
        ]
        ,idProperty:"nafnmfuid"
        ,associations:[ {
            type:"belongsTo"
            ,model:"SearchResults.Models.Account"
        }
        ]
    })
    ,storeId:"StoreSearchResults2"
    ,autoLoad:true
    ,proxy: {
        type:'memory'
        , reader: {
            type:"json"
        }
    }
});
window.App.StoreSearchResults = Ext.create("Ext.data.Store", {
    model:Ext.define("SearchResults.Models.Account",  {
        extend: "Ext.data.Model"
        , fields:[ {
            name:"nmfuid"
            ,type:"int"
        }
        , {
            name:"AmfLastNamePrimary"
        }
        , {
            name:"AmfFirstNamePrimary"
        }
        , {
            name:"nmfid"
        }
        , {
            name:"naftype"
        }
        , {
            name:"nafadd1"
        }
        , {
            name:"nafcity"
        }
        , {
            name:"nafstate"
        }
        , {
            name:"nafzip"
        }
        ]
        ,idProperty:"nmfuid"
        ,associations:[ {
            type:"hasMany"
            ,associationKey:"addresses"
            ,primaryKey:"nmfuid"
            ,model:"SearchResults.Models.Address"
            ,foreignKey:"nafnmfuid"
            ,name:"Addresses"
        }
        ]
    })
    ,storeId:"StoreSearchResults"
    ,autoLoad:true
    ,proxy: {
        type:'memory'
        , reader: {
            type:"json"
        }
    }
});

【问题讨论】:

    标签: extjs ext.net


    【解决方案1】:

    问题是我在客户端使用方法 loadData 来绑定数据。切换到 loadRawData 就成功了。

    【讨论】:

      猜你喜欢
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-31
      • 1970-01-01
      • 1970-01-01
      • 2014-05-05
      • 2021-01-19
      相关资源
      最近更新 更多