使用会话变量在 arraylist 中存储和显示多个查询字符串
Storing and displaying multiple query string in arraylist using session variables
我有一个包含产品网格的网络表单。当您单击该产品时,它会将您带到一个显示带有 "add to cart" 按钮的单个产品的页面。我想要做的是,当我单击 "add to cart" 按钮时,每次用户单击 "add to cart" 按钮时,会话都会将 productId 的查询字符串存储在数组列表中。我可以将它存储在会话变量中,但是当我想显示所有查询字符串时,只显示最近的一个。提前致谢。
下面是 "add to cart" 按钮的代码:
protected void btnAdd_Click(object sender, EventArgs e)
{
string productId;
ArrayList arProduct = new ArrayList();
if (Request.QueryString.Get("ProductId") != null)
{
productId = Request.QueryString.Get("ProductId");
arProduct.Add(productId);
}
Session["Cart"] = arProduct;
Response.Redirect("Cart.aspx");
}
下面是Cart.aspx的页面加载代码:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["Cart"] != null)
{
lblProducts.Text = "Here are your products: " + "<ul>";
ArrayList alProduct = new ArrayList();
alProduct = (ArrayList)Session["Cart"];
foreach (string item in alProduct)
{
lblProducts.Text += "<li>" + item + "</li>";
}
lblProducts.Text += "</ul>";
}
}
当您单击 'add' 时,您每次都会创建一个新的 arProduct
并将其放入 Session["Cart"]
。因此,先前的添加将被覆盖。您需要在添加事件处理程序中重用 Session['Cart']
。
protected void btnAdd_Click(object sender, EventArgs e)
{
string productId;
ArrayList arProduct = Session['Cart'] as ArrayList;
if(arProduct == null)
{
arProduct = new ArrayList();
Session['Cart'] = arProduct;
}
if (Request.QueryString.Get("ProductId") != null)
{
productId = Request.QueryString.Get("ProductId");
arProduct.Add(productId);
}
Session["Cart"] = arProduct;
Response.Redirect("Cart.aspx");
}
编辑:
为了它的价值,我会将 arProduct 的代码放入 属性。并在 btnAdd_Click
处理程序和页面加载
中使用它
我有一个包含产品网格的网络表单。当您单击该产品时,它会将您带到一个显示带有 "add to cart" 按钮的单个产品的页面。我想要做的是,当我单击 "add to cart" 按钮时,每次用户单击 "add to cart" 按钮时,会话都会将 productId 的查询字符串存储在数组列表中。我可以将它存储在会话变量中,但是当我想显示所有查询字符串时,只显示最近的一个。提前致谢。
下面是 "add to cart" 按钮的代码:
protected void btnAdd_Click(object sender, EventArgs e)
{
string productId;
ArrayList arProduct = new ArrayList();
if (Request.QueryString.Get("ProductId") != null)
{
productId = Request.QueryString.Get("ProductId");
arProduct.Add(productId);
}
Session["Cart"] = arProduct;
Response.Redirect("Cart.aspx");
}
下面是Cart.aspx的页面加载代码:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["Cart"] != null)
{
lblProducts.Text = "Here are your products: " + "<ul>";
ArrayList alProduct = new ArrayList();
alProduct = (ArrayList)Session["Cart"];
foreach (string item in alProduct)
{
lblProducts.Text += "<li>" + item + "</li>";
}
lblProducts.Text += "</ul>";
}
}
当您单击 'add' 时,您每次都会创建一个新的 arProduct
并将其放入 Session["Cart"]
。因此,先前的添加将被覆盖。您需要在添加事件处理程序中重用 Session['Cart']
。
protected void btnAdd_Click(object sender, EventArgs e)
{
string productId;
ArrayList arProduct = Session['Cart'] as ArrayList;
if(arProduct == null)
{
arProduct = new ArrayList();
Session['Cart'] = arProduct;
}
if (Request.QueryString.Get("ProductId") != null)
{
productId = Request.QueryString.Get("ProductId");
arProduct.Add(productId);
}
Session["Cart"] = arProduct;
Response.Redirect("Cart.aspx");
}
编辑:
为了它的价值,我会将 arProduct 的代码放入 属性。并在 btnAdd_Click
处理程序和页面加载