c# - 单击事件后将值保存在列表中
问题描述
当我单击此链接按钮时,我需要将对象保存在列表中,但是如果再次单击,我的列表将丢失旧值并获得列表计数 = 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;
}
解决方案
我能够通过从 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;
}
推荐阅读
- oracle - PL/SQL:While Loop 不等待内部过程完成
- java - 如何在 getJdbcTemplate().query 中将 postgresql 数组转换为 java 数组
- delphi - 如何创建一个文件夹并同时在该文件夹中创建一个新的文本文件
- c - 哪个算法或程序或代码对缓存的使用非常糟糕
- mongodb - 如何计算mongodb中字符串的总和?
- xml - 通过检查其所有后继元素节点值是否大于某个固定值来输出 XML 节点?
- javascript - 无法按 ID 将 intro.js 放置在元素上
- php - PHP处理MySQL逐行查询
- node.js - req.session 在 Heroku(RedisToGo 插件)上运行时未定义,但在本地使用 redistogo url 时可用
- 64-bit - NASM 分段错误