c# - 如何将包含列表的字典绑定(bind)到 GridView

标签 c# asp.net gridview dictionary

如何将此字典绑定(bind)到 GridView -

   Dictionary<int, Actor> actors = new Dictionary<int, Actor>{
    {
        1,new Actor
        {
            ActorId = 1,
            ActorName= "Rajanikant",
            BirthDate =DateTime.Parse("12-12-1949"), 
            BirthPlace ="Bangalore", 
            Photo ="~/Images/1.jpg", 
            Movies = new List<string>{"Shivaji (2007)","Baba (2002)","ChaalBaaz (1989)"}
        }
    },                 
    {
        2,new Actor
        {
            ActorId = 2,
            ActorName= "Jennifer Aniston", 
            BirthDate =DateTime.Parse("11-2-1969"), 
            BirthPlace ="Sherman Oaks", 
            Photo ="~/Images/2.jpg", 
            Movies=new List<string>{"Friends (1994)","Bruce Almighty (2003)","Just Go with It (2011)"}
        }
    }, 
};

在 ASP.NET 中使用 C#

最佳答案

您需要将 GridView DataDource 设置为 Dictionary.Values,如下所示:

GridView1.DataSource = actors.Values;
GridView1.DataBind();

编辑:标记可能如下所示(感谢 julealgon 指向电影列表):

<asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server">
    <Columns>
        <asp:BoundField DataField="ActorId" HeaderText="Actor Id" />
        <asp:BoundField DataField="ActorName" HeaderText="Actor Name"  />
        <asp:BoundField DataField="BirthDate" HeaderText="Birth Date"  />
        <asp:BoundField DataField="BirthPlace" HeaderText="Birth Place"  />   
        <asp:TemplateField  HeaderText="Photo" >
            <ItemTemplate>
                <asp:Image ID="Image1" ImageUrl='<%#Eval("Photo") %>'  runat="server" />
                </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField  HeaderText="Movies" >
            <ItemTemplate>
                <asp:ListBox ID="ListBox1" DataSource='<%#Eval("Movies") %>' runat="server"></asp:ListBox>
                </ItemTemplate>
        </asp:TemplateField>   
    </Columns>
</asp:GridView>

显示方式如下: enter image description here

您可以下载我用来测试您的代码的测试项目 here .

关于c# - 如何将包含列表的字典绑定(bind)到 GridView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20747966/

相关文章:

C# 无法将 bool 转换为 int

c# - 自定义控件的绑定(bind)在 GridView 中有效,但在 FormView 中无效

gridview - 如何从 yii2 的 gridview 页面中删除 glyphicon glyphicon-pencil 或编辑、查看、删除按钮?

wpf - 验证 Telerik 可编辑的 GridView 行

c# - 如何获取gridview中复选框的值

javascript - 如何删除动态添加的jquery

c# - Entity Framework 子查询

asp.net - cassandra c# 驱动程序中的向后分页

javascript - 当子弹出窗口打开时禁用父窗口

c# - MySQL 'Price' 中的未知列 'field list'