我目前正在网店工作。为此,我需要制作一个二维数组来存储移动到购物车的物品。
购物车:
Cart = Session("Cart")
Items = Session("Items")
当物品移动到购物车时:
Items = Items + 1
Cart(1,Items) = Items
Cart(2,Items) = rs("id")
Cart(3,Items) = Request("attr")
Cart(4,Items) = rs("name")
Cart(5,Items) = rs("price")
Cart(6,Items) = 1
最后:
Session("Cart") = Cart
Session("Items") = Items
但是我遇到了asp缺乏对动态大小的二维数组的适当支持的问题。或者我只是采取了错误的方式?你能救我吗?
答案 0 :(得分:1)
您可能想要创建一些对象而不是使用数组。或者甚至是structure,如果它没有方法。
这是一个struct
的expamle/// <summary>
/// Custom struct type, representing a rectangular shape
/// </summary>
struct Rectangle
{
/// <summary>
/// Backing Store for Width
/// </summary>
private int m_width;
/// <summary>
/// Width of rectangle
/// </summary>
public int Width
{
get
{
return m_width;
}
set
{
m_width = value;
}
}
/// <summary>
/// Backing store for Height
/// </summary>
private int m_height;
/// <summary>
/// Height of rectangle
/// </summary>
public int Height
{
get
{
return m_height;
}
set
{
m_height = value;
}
}
}
所以现在你可以:
Cart[0] = new Rectangle{Width = 1,Height = 3};
或
Rectangle myRec = new Rectangle();
myRec.Height = 3;
myRec.Width = 1;
Cart[0] = myRec;
使用Item交换Rectangle示例,您应该在路上。 这样,每个Cart的单个实例就有多个Items,每个都有自己的属性集。
答案 1 :(得分:0)
在我看来,您的问题可以通过动态大小的项目对象列表来解决。在这种情况下,您需要创建一个Item类,然后为Cart列表添加每个新项的新Item对象。
答案 2 :(得分:0)
为与存储购物车中商品列表的表相关的用户存储ShoppingSessionID
会不会更简单?这样你只需存储Session("ShoppingSessionID")
。