C# 如何在数据列表或网格视图中绑定和显示集合

C# 如何在数据列表或网格视图中绑定和显示集合,c#,asp.net,data-binding,listbox,C#,Asp.net,Data Binding,Listbox,我的页面有三个类。产品显示在页面上并添加到篮子中 添加的产品通过列表框显示在列表框中 我不知道如何在数据列表或网格视图中绑定和显示集合,因此我可以更好地控制布局和可能要添加的任何附加功能。例如添加和删除项等 以下是课程: public class Product { public string ProductID { get; set; } public string Name { get; set; } public string ShortDescription {

我的页面有三个类。产品显示在页面上并添加到篮子中

添加的产品通过列表框显示在列表框中

我不知道如何在数据列表或网格视图中绑定和显示集合,因此我可以更好地控制布局和可能要添加的任何附加功能。例如添加和删除项等

以下是课程:

public class Product
{
    public string ProductID { get; set; }
    public string Name { get; set; }
    public string ShortDescription { get; set; }
    public string LongDescription { get; set; }
    public decimal UnitPrice { get; set; }
    public string ImageFile { get; set; }
}

public class CartItem
{
    public CartItem() {}

    public CartItem(Product product, int quantity)
    {
        this.Product = product;
        this.Quantity = quantity;
    }

    public Product Product { get; set; }
    public int Quantity { get; set; }

    public void AddQuantity(int quantity)
    {
        this.Quantity += quantity;
    }

    public string Display()
    {
        string displayString = 
            Product.Name + " (" + Quantity.ToString()
            + " at " + Product.UnitPrice.ToString("c") + " each)";
        return displayString;
    }
}


public class CartItemList
{
    private List<CartItem> cartItems;

    public CartItemList()
    {
        cartItems = new List<CartItem>();
    }

    public int Count { get { return cartItems.Count; } }

    public CartItem this[int index]
    {
        get { return cartItems[index]; }
        set { cartItems[index] = value; }
    }

    public CartItem this[string id]
    {
        get {
            foreach (CartItem c in cartItems)
                if (c.Product.ProductID == id) return c;
            return null;
        }
    }

    public static CartItemList GetCart()
    {
        CartItemList cart = (CartItemList) HttpContext.Current.Session["Cart"];
        if (cart == null)
            HttpContext.Current.Session["Cart"] = new CartItemList();
        return (CartItemList) HttpContext.Current.Session["Cart"];
    }

    public void AddItem(Product product, int quantity)
    {
        CartItem c = new CartItem(product, quantity);
        cartItems.Add(c);
    }

    public void RemoveAt(int index)
    {
        cartItems.RemoveAt(index);
    }

    public void Clear()
    {
        cartItems.Clear();
    }
}
下面是显示篮子的方法:

protected void displayList()
{
    CartItemList cart = CartItemList.GetCart();
    CartItem item;

    for (int i = 0; i < cart.Count; i++)
    {
        item = cart[i];
        ListBox1.Items.Add(item.Display());
    }

    Label3.Text = "Total : " + total.ToString();
}
protectedvoid displayList()
{
CartItemList cart=CartItemList.GetCart();
CartItem项目;
for(int i=0;i
如何在页面上以可定制的方式显示来自数据库或类似arraylist的数据,如添加“addquantity”“remove”“订单总额超过一定数量时显示消息等?”

到目前为止,我只是将它绑定到gidviews、datalist或listbox,但这并不能让我以我想要的方式展示它


在网站篮式订购系统(如此处)的幕后发生的事情使用a可以让您严格控制repeater.aps表中每个项目所使用的HTML。这是我一生都在寻找的东西。谢谢
protected void displayList()
{
    CartItemList cart = CartItemList.GetCart();
    CartItem item;

    for (int i = 0; i < cart.Count; i++)
    {
        item = cart[i];
        ListBox1.Items.Add(item.Display());
    }

    Label3.Text = "Total : " + total.ToString();
}