gpt4 book ai didi

c# - 将 ASP.NET 2.0 GridView 绑定(bind)到我自己的 IList.SomeMemberOfMyOwnCustomType.SomeProperty

转载 作者:太空狗 更新时间:2023-10-30 00:43:01 25 4
gpt4 key购买 nike

假设我有这样的数据:

class Location
{
public int Id { get; private set; }
public string City { get; set; }
public string State { get; set; }
public string Country { get; set; }
}

class Friend
{
public int Id { get; }
public string FriendName { get; set; }
public Location Address { get; set; }
public int Age { get; set; }
public bool IsReliable { get; set; }
}

假设我将 ASP.NET 2.0 GridView 控件绑定(bind)到我自己的 IList,如下所示:

GridView1.DataSource = new List<Friend>
{
new Friend { Name = "...", Age = 22, ... }
};

GridView1.DataBind();

但我只想在我的 GridView 中包含以下自定义标题/列标题的以下列:

  1. FriendName(列标题: friend 姓名)
  2. 城市(列标题:城市)
  3. 年龄(列标题:年龄)

我该怎么做?

换句话说,如何将 GridView 控件选择性地绑定(bind)到我自己的自定义 IList 的自定义成员?

最佳答案

几年来我不接触 webforms 网格,但 IIRC 你可以在网格端使用 <Columns>符号:

<asp:GridView ...>
<Columns>
<asp:BoundField DataField="FriendName"
readonly="true"
headertext="Friend Name"/>
<asp:BoundField DataField="Address.City"
readonly="true"
headertext="City"/>
<asp:BoundField DataField="Age"
readonly="true"
headertext="Age"/>
</Columns>
</asp:GridView>

或者使用 IEnumerable/Linq 扩展来转换你的结果:

GridView.DataSource = friends.Select(friend => 
new { FriendName, City = friend.Address.City, Age });

并创建一个类似的<Columns>此新输出的符号,您还需要它用于自定义标题文本。

编辑:如果 DateField="Address.City"不起作用,则有 templateField 选项,带有 <ItemTemplate>你可以简单地 <%# Eval("Address.City") %>在其内容中。

关于c# - 将 ASP.NET 2.0 GridView 绑定(bind)到我自己的 IList<T>.SomeMemberOfMyOwnCustomType.SomeProperty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12430915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com