セッションに保存されているアイテムをカートに追加しようとしていますが、カートに新しい商品を追加すると、セッション値が上書きされます。
private List<int> newCart = new List<int>();
protected void dlstCartItems_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "AddToCart")
{
var arg = e.CommandArgument;
DropDownList ddlList = e.Item.FindControl("ddlAvailableSizes"+e.CommandArgument) as DropDownList;
int currentItemID = int.Parse(this.dlstCartItems.DataKeys[e.Item.ItemIndex].ToString());
if (ddlList.SelectedIndex == 0)
{
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alert", "alert('Please Select Size');", true);
}
else
{
newCart.Add(Convert.ToInt32(e.CommandArgument));
Session["Cart"] = newCart;
if (Session["Cart"] != null)
{
int ct = ((List<int>)Session["Cart"]).Count;
lblCartMessage.Text = Convert.ToString(ct)+" "+"Product";
}
}
}
}
私の問題は、新しい製品を追加するたびに、古い製品がリストに表示されなくなり、製品数が常に1になることです。