C# 如何在页面加载后保留一个包含已保存条目的列表?
我有一份清单:C# 如何在页面加载后保留一个包含已保存条目的列表?,c#,asp.net,list,pageload,C#,Asp.net,List,Pageload,我有一份清单: public List<string> QuestionIDs; } 我的问题是,在页面加载后,当我根据上一个问题的id调用下一个问题时,列表中根本并没有id。如何保存Id以便在加载页面后使用 您必须将列表置于视图状态 public IList<string> QuestionIDs { get { var obj = ViewState["QuestionIDs"]; if(obj == null) {
public List<string> QuestionIDs;
}
我的问题是,在页面加载后,当我根据上一个问题的id调用下一个问题时,列表中根本并没有id。如何保存Id以便在加载页面后使用 您必须将列表置于视图状态
public IList<string> QuestionIDs
{
get
{
var obj = ViewState["QuestionIDs"];
if(obj == null)
{
obj = new List<string>();
ViewState["QuestionIDs"] = obj;
}
return (IList<string>)obj;
}
}
公共IList问题ID
{
得到
{
var obj=视图状态[“问题ID”];
if(obj==null)
{
obj=新列表();
视图状态[“问题ID”]=obj;
}
返回(IList)对象;
}
}
schould我还可以删除questionID=new List()的初始化;来自构造函数?是的,如果您使用我的答案中的代码,则在需要时将在属性内创建列表。
<asp:RadioButtonList ID="selectedYesNo1" runat="server" RepeatDirection="Horizontal"
OnSelectedIndexChanged="FirstQuestionGotAnswered">
<asp:ListItem Text="Yes" Value="1"></asp:ListItem>
<asp:ListItem Text="No" Value="0"></asp:ListItem>
</asp:RadioButtonList>
protected void FirstQuestionGotAnswered(object sender, EventArgs e)
{
QuestionID = selectedYesNo1.Text;
QuestionIDs.Add(QuestionID);
public IList<string> QuestionIDs
{
get
{
var obj = ViewState["QuestionIDs"];
if(obj == null)
{
obj = new List<string>();
ViewState["QuestionIDs"] = obj;
}
return (IList<string>)obj;
}
}