Ste*_*ven 5 .net c# asp.net webforms
这是我的代码隐藏中的内容:
List<Event> events = new List<Event>();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void AddEvent_Click(object sender, EventArgs e)
{
Event ev = new Event();
ev.Name = txtName.Text;
events.Add(ev);
}
Run Code Online (Sandbox Code Playgroud)
我想在每次单击"添加"按钮时将项添加到列表中,但是每次回发后都会重置列表.如何在回发之间保留列表中的数据?
我经常使用这样的技术,但请记住,这可能会导致您的viewstate(渲染到浏览器)变得相当大:
public List<Event> Events
{
get { return (List<Event>)ViewState["EventsList"]; }
set { ViewState["EventsList"] = value; }
}
Run Code Online (Sandbox Code Playgroud)
然后当你想使用列表时,你会做这样的事情:
public void AddToList()
{
List<Event> events = Events; // Get it out of the viewstate
... Add/Remove items here ...
Events = events; // Add the updated list back into the viewstate
}
Run Code Online (Sandbox Code Playgroud)
另请注意,您的Event类需要是可序列化的,但这通常就像将[Serializable]属性添加到类中一样简单(除非它是一个非常复杂的类).
| 归档时间: |
|
| 查看次数: |
8810 次 |
| 最近记录: |