如何将会话数据绑定到购物车的 gridview
How to bind session data to gridview for shopping cart
我不确定这是不是最好的方法,但我将购物车数据存储在字典中。我想将数据绑定到 gridview 并在 aspx 页面中使用。
不知何故,我们可以在aspx页面的gridview中使用<%# Eval("product_id") %>
吗?
设置词典
public Dictionary<int, Product> products = null;
购物车:
products = new Dictionary<int, Product>();
使用此代码读取数据:
Cart mycart = (Cart)Session["activecart"];
double GeneralTotal = 0;
foreach (int i in mycart.products.Keys)
{
Response.Write(mycart.products[i].product_id);
Response.Write(mycart.products[i].product_name);
Response.Write(mycart.products[i].product_price);
Response.Write(mycart.products[i].product_quantity);
Response.Write(mycart.products[i].total_price);
GeneralTotal += mycart.products[i].total_price;
}
Response.Write(GeneralTotal);
我可以使用 foreach 读取值,但我想使用 Eval 在 gridview 中显示这些数据。
我试过这段代码来绑定 gridview:
Cart activeCart = (Cart)HttpContext.Current.Session["activecart"];
gridview1.DataSource = activeCart.products;
gridview1.DataBind();
这只是从字典中获取键值变量。无法使用 <%#Eval("custom") %>
获取特定值。有什么建议吗?
我会这样做:
Cart mycart = (Cart)Session["activecart"];
double GeneralTotal = 0;
DataTable tempBasket = new DataTable();
DataRow rowTempBasket;
tempBasket.Columns.Add("product_id", typeof (int));
//Add the other columns the same way
foreach (int i in mycart.products.Keys)
{
rowTempBasket = tempBasket.NewRow();
rowTempBasket["product_id"] = mycart.products[i].product_id;
//Add the other columns the same way
tempBasket.Rows.Add(rowTempBasket);
}
//Then DataBind the created table to your GridView
gridview1.DataSource = tempBasket;
gridview1.DataBind();
那你应该可以使用Eval了。
编辑
也许您 post 您的 ASPX 页面的代码。将有助于如何处理总计。
我不确定这是不是最好的方法,但我将购物车数据存储在字典中。我想将数据绑定到 gridview 并在 aspx 页面中使用。
不知何故,我们可以在aspx页面的gridview中使用<%# Eval("product_id") %>
吗?
设置词典
public Dictionary<int, Product> products = null;
购物车:
products = new Dictionary<int, Product>();
使用此代码读取数据:
Cart mycart = (Cart)Session["activecart"];
double GeneralTotal = 0;
foreach (int i in mycart.products.Keys)
{
Response.Write(mycart.products[i].product_id);
Response.Write(mycart.products[i].product_name);
Response.Write(mycart.products[i].product_price);
Response.Write(mycart.products[i].product_quantity);
Response.Write(mycart.products[i].total_price);
GeneralTotal += mycart.products[i].total_price;
}
Response.Write(GeneralTotal);
我可以使用 foreach 读取值,但我想使用 Eval 在 gridview 中显示这些数据。
我试过这段代码来绑定 gridview:
Cart activeCart = (Cart)HttpContext.Current.Session["activecart"];
gridview1.DataSource = activeCart.products;
gridview1.DataBind();
这只是从字典中获取键值变量。无法使用 <%#Eval("custom") %>
获取特定值。有什么建议吗?
我会这样做:
Cart mycart = (Cart)Session["activecart"];
double GeneralTotal = 0;
DataTable tempBasket = new DataTable();
DataRow rowTempBasket;
tempBasket.Columns.Add("product_id", typeof (int));
//Add the other columns the same way
foreach (int i in mycart.products.Keys)
{
rowTempBasket = tempBasket.NewRow();
rowTempBasket["product_id"] = mycart.products[i].product_id;
//Add the other columns the same way
tempBasket.Rows.Add(rowTempBasket);
}
//Then DataBind the created table to your GridView
gridview1.DataSource = tempBasket;
gridview1.DataBind();
那你应该可以使用Eval了。
编辑
也许您 post 您的 ASPX 页面的代码。将有助于如何处理总计。