使用字符串填充ListView

时间:2013-07-17 18:38:34

标签: c# asp.net

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

enter image description here

示例代码

<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();
}

答案 1 :(得分:1)

您可以使用ToList operator

将数组转换为列表

C#

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

asp.net

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

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

</asp:ListView>