3

我对 ASP.NET 有点陌生,所以请耐心等待。我遇到了这个解决方案,它允许我将字符串数组作为一行数据添加到 ListView。但是,我不确定设置它的正确方法。在尝试使用我放到我网站上的 ListView 的解决方案时,我被告知new ListViewItem()需要一个 ListViewItemType 类型的参数。示例解决方案没有提供,那么它在 ASP.NET 中是否有所不同?

所以我要问的主要问题是:如果我有一个字符串数组,如何将它作为 ASP.NET 中的一行数据添加到 ListView?

编辑:我想确保我要求正确的控制。我的印象是 ListView 是这样的(但在 ASP.NET 中),但到目前为止我得到的不是。这只是一行文字。

4

2 回答 2

2

如果您想像示例中那样显示,您想使用GridView而不是ListView.

字符串集合不足以在多列中显示。你需要一个对象的集合。

屏幕截图(顶部是 ListView,底部是 GridView)

在此处输入图像描述

示例代码

<asp:ListView runat="server" ID="ListView1">
    <ItemTemplate>
        <%# Eval("Name") %>, 
        <%# Eval("Email") %>, 
        <%# Eval("Phone") %><br />
    </ItemTemplate>
</asp:ListView>
<br/>
<asp:GridView ID="GridView1" AutoGenerateColumns="True" runat="server" />

public class User
{
    public string Name { get; set; }
    public string Email { get; set; }
    public string Phone { get; set; }
}

protected void Page_Load(object sender, EventArgs e)
{
    var collections = new List<User>
        {
            new User {Name = "Jon Doe", Email = "john@doe.com", Phone = "123-123-1234"},
            new User {Name = "Marry Doe", Email = "marry@doe.com", Phone = "456-456-4567"},
            new User {Name = "Eric Newton", Email = "eric@newton.com", Phone = "789-789-7890"},
        };

    ListView1.DataSource = collections;
    ListView1.DataBind();

    GridView1.DataSource = collections;
    GridView1.DataBind();
}
于 2013-07-17T19:10:38.510 回答
1

您可以将数组转换为列表ToList operator

C#

lv.DataSource = yourArray.ToList();
lv.DataBind();

<asp:ListView ID="lv" runat="server">

        <ItemTemplate>
            <asp:Label ID="lbl" runat="server" Text='<%# Container.DataItem %>'/>
        </ItemTemplate>

</asp:ListView>
于 2013-07-17T18:40:47.190 回答