我对ASP.NET有点新鲜,所以请耐心等待。我遇到了this solution,它允许我将一个字符串数组添加到ListView作为一行数据。但是,我不确定正确的方法来设置它。在使用ListView尝试此解决方案时,我将其放到我的网站上,我被告知new ListViewItem()
需要一个ListViewItemType类型的参数。示例解决方案没有提供,因此它在ASP.NET中有所不同吗?
所以我要问的主要问题是:如果我有一个字符串数组,如何将它作为一行数据添加到ListView中?
编辑:我想确保我要求正确的控制权。我的印象是ListView是like this(但在ASP.NET中),但到目前为止我得到的并不是。这只是一行文字。答案 0 :(得分:2)
如果您想要像示例中那样显示,则需要使用GridView
而不是ListView
。
字符串集合不足以在多列中显示。你需要一组对象。
<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>