我有两个用于输入商品名称和价格的文本框,下方有一个提交按钮,下方有一个显示当前商品的项目符号列表。单击提交按钮时,应在项目列表中输入新项目,并用新项目刷新项目符号列表。
但是发生的情况是,如果我将生成项目符号列表的代码放在 OnInit 中,那么该列表不会在第一次回发时刷新。如果我将它放在 Page_Load 中,那么该列表只会在每次回发时复制自身。我应该把它放在哪里,我做错了什么?
这是我的代码。
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
List<Product> Products = (List<Product>)Session["Products"];
foreach (Product p in Products)
{
ListItem productname = new ListItem();
productname.Text = p.name;
blProducts.Items.Add(productname);
}
}
下面是提交按钮的代码:
protected void btnSubmit_Click(object sender, EventArgs e)
{
List<Product> Products = (List<Product>)Session["Products"];
string name = txtName.Text;
decimal price = decimal.Parse(txtPrice.Text);
Product p = new Product(name, price);
Products.Add(p);
Session["Products"] = Products;
}