C# 会议获胜';触发复选框列表时,在回发时存储属性

C# 会议获胜';触发复选框列表时,在回发时存储属性,c#,asp.net,mono,C#,Asp.net,Mono,我的问题是我的列表在回发期间没有被保留。 我正在把它保存到 Page.Session["mine"] 我的设计页面由2个控件(标签和复选框列表)组成 由于项目的数量将发生变化,我使用复选框列表而不是单个复选框控件,并在页面_load()中动态加载每个项目 我不确定它叫什么,成员、属性或属性。但是我有一个变量,类的每个方法都可以调用它,它保存了复选框列表中所有选定项的位置 Private List<int> locCheck = new List<int>(); 我把这

我的问题是我的列表在回发期间没有被保留。 我正在把它保存到

Page.Session["mine"]
我的设计页面由2个控件(标签和复选框列表)组成

由于项目的数量将发生变化,我使用复选框列表而不是单个复选框控件,并在页面_load()中动态加载每个项目

我不确定它叫什么,成员、属性或属性。但是我有一个变量,类的每个方法都可以调用它,它保存了复选框列表中所有选定项的位置

Private List<int> locCheck = new List<int>();
我把这个放在第二页

if(Page.IsPostBack)
{
   locCheck = new List<int>();
   locCheck = (List<int>) Page.Session["mine"];
   Label.Text = String.Format("Is PostBack {0}/{1}", locCheck.Count, CheckBoxList.Items.Count);
}
else
{
   Label.Text = String.Format("Is Not PostBack 0/{0}", CheckBoxList.Items.Count);
}
但我认为目前没有必要这样做。出于测试目的,应始终至少对一个元件进行locCheck

我找不到答案,所以我从头开始。我使用的不是检查表,而是在不需要时变为不可见的复选框面板

我仍然不确定会议的情况,但我发现了一些奇怪的事情

例如:

 Session["mine"] = locCheck;   //where lockCheck has 4 elements
在页面加载到按钮单击之间的某个时间,locCheck有时设置为null。 我发现,在这种情况下,调试回到locCheck不为null且元素值正确的点。然后执行以下操作:

 Session["mine"] = locCheck;
然后,在click事件中执行以下代码

 locCheck = new List<int>();
 locCheck = (List<int>) Session["mine"];

 //then make your update:
 locCheck[3] = 7;
 Session["mine"] = locCheck;
locCheck=新列表();
locCheck=(列表)会话[“我的”];
//然后进行更新:
locCheck[3]=7;
会话[“我的”]=locCheck;
出于某种原因,如果我不这样做,会话[“我的”]和locCheck都将变为null,数据将丢失。

尝试使用此选项

      locCheck = (List<int>) Page.Session["mine"].ToString();
locCheck=(列表)Page.Session[“mine”].ToString();
当您只能使用会话时,为什么要使用page.session

 Session["mine"] = locCheck;   //where lockCheck has 4 elements
 Session["mine"] = locCheck;
 locCheck = new List<int>();
 locCheck = (List<int>) Session["mine"];

 //then make your update:
 locCheck[3] = 7;
 Session["mine"] = locCheck;
      locCheck = (List<int>) Page.Session["mine"].ToString();