我在ASP.NET网页更新面板中引用了一个全局变量。以下是更新面板中发生的情况:
accidentListType.Add(Convert.ToString(AccidentDescription.SelectedItem));
if (Atfault.Checked)
{
accidentAtFault.Add("True");
}
else accidentAtFault.Add("False");
DateTime newDate = new DateTime(Convert.ToInt32(accidentyear.Text), Convert.ToInt32(accidentmonth.Text), 1);
accidentListDate.Add(newDate);
TestAccidentLabel.Text = "Success! " + newDate.ToString();
基本上,每次单击按钮时,列表都会获得另一个添加的成员。但每次它在代码中运行时,新索引都会神秘地被删除,所以当我将所有意外添加到数据库中时,就不会添加意外了。我不能动态添加它们,因为事故数据库的输入之一是来自另一个表的Identity,我在创建表时提取它,所以无论如何我都必须添加它们。
有人能帮忙吗?附言:这是我第一次发帖,所以如果有什么问题,我很抱歉。
您缺少两样东西。尽管您的列表是全局的,但由于在每次请求后页面对象都会被销毁,除非您将列表保留在会话中,否则这些值将不会持久存在。此外,您必须重新使用会话中保存的列表来添加任何新值。按以下步骤操作。
//at the start of block
//check if there is anything in Session
//if not, create a new list
if(Session["accidentListType"] == null)
accidentListType = new List<string>();
else //else a list already exists in session , use this list and add object to this list
accidentListType = Session["accidentListType"] as List<string>;
//do your processing, as you are doing
//and at the end of bloack store the object to the session
Session["accidentListType"] = accidentListType