首页 > 解决方案 > 单击事件后将值保存在列表中

问题描述

当我单击此链接按钮时,我需要将对象保存在列表中,但是如果再次单击,我的列表将丢失旧值并获得列表计数 = 1,有什么建议吗?

 List<Product> products = new List<Product>();

 protected void AddProduct_Click(object sender, EventArgs e)
    {
        int productID = Convert.ToInt32((sender as LinkButton).CommandArgument); /*Pega o id do button que foi clicado relativa a reserva*/

        products.Add(ProductBLL.GetProductByID(productID));

        ViewState["products"] = products;
    }

标签: c#asp.netlistwebformsviewstate

解决方案


我能够通过从 ViewState 中检索列表(如果存在)来解决问题,然后将我的项目添加到其中。

protected void AddProduct_Click(object sender, EventArgs e)
{
    List<Product> products = new List<Product>();
    if(ViewState["products"] != null)
    products = (List<Product>) ViewState["products"];

    int productID = Convert.ToInt32((sender as LinkButton).CommandArgument); 

    products.Add(ProductBLL.GetProductByID(productID));

    ViewState["products"] = products;
}

推荐阅读