我有一个用户对象,其中包含一些数据和其他类别的数据:
[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但不显示其他数据字段,因为它们不是基本类型。我的解决方案是什么?
谢谢!
答案 0 :(得分:0)
这是我提出的一个解决方案,但我不喜欢这样的事实,即如果你更改用户模型,添加一个字段或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();