【问题标题】:Displaying Nested Class Data in an ASP.Net DataGrid在 ASP.Net DataGrid 中显示嵌套类数据
【发布时间】:2011-04-10 08:48:18
【问题描述】:

我有一个用户对象,其中包含一些数据和其他类型的数据:

[DataContract]
    public class User
    {             
        [DataMember(Order = 0)]
        public int UserId
        {
            get; set;
        }

    public UserCredentials UserCredentials
    {
       get; set;
    }

    [DataMember(Order = 1)]
    public String SessionId { get; set; }

    [DataMember(Order = 2)]        
    public Email Email
    {
        get; set;
    }

    [DataMember(Order = 3)]
    public Password Password
    {
         get; set;
    }

    [DataMember(Order = 4)]
    public UserDetails UserDetails
    {
        get; set;
    }        

    [DataMember(Order = 5)]
    public ReferralDetails ReferralDetails
    {
         get; set;
    }

如果我在 ASP.NET 数据网格中显示此列表,如下所示:

List<Users> users = // get some list of users
DataGridUsers.DataSource = users;            
DataGridUsers.DataBind();

这会显示 sessionId 和 userId 但没有其他数据字段,因为它们不是基本类型。我的解决方案是什么?

谢谢!

【问题讨论】:

    标签: asp.net datagrid


    【解决方案1】:

    这是我想出的一个解决方案,但我不喜欢这样的事实,即如果您更改用户模型、添加一个字段或 w/e 您必须更新这组代码:

    //......
    
               DataTable dt = new DataTable();
    
                // Add all columns needed here
                dt.Columns.Add(new DataColumn("FirstName", typeof (String)));
                // ....                
    
                foreach (var user in users)
                {
                    DataRow dr = dt.NewRow();
    
                    // Map all the data here
                    dr["FirstName"] = user.UserDetails.FirstName;
                    // ...
    
                    dt.Rows.Add(dr);
                }
    
                DataGridUsers.DataSource = dt;
                DataGridUsers.DataBind();
    

    【讨论】:

    • 从那以后你找到更好的东西了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 2021-12-30
    • 2011-03-22
    • 2017-05-20
    • 1970-01-01
    相关资源
    最近更新 更多