Csharp/C#教程:维护回发之间的通用列表分享


维护回发之间的通用列表

这是我的代码隐藏中的内容:

List events = new List(); 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); } 

我想在每次单击“添加”按钮时将项添加到列表中,但是每次回发后都会重置列表。 如何在回发之间保留列表中的数据?

我经常使用这样的技术,但请记住,这会导致您的viewstate(渲染到浏览器)变得相当大:

 public List Events { get { return (List)ViewState["EventsList"]; } set { ViewState["EventsList"] = value; } } 

然后当你想使用列表时,你会做这样的事情:

 public void AddToList() { List events = Events; // Get it out of the viewstate ... Add/Remove items here ... Events = events; // Add the updated list back into the viewstate } 

另请注意,您的Event类需要是可序列化的,但这通常就像将[Serializable]属性添加到类中一样简单(除非它是一个非常复杂的类)。

你需要以某种方式自己维护列表。 您可以将其填充到ViewState中,将其推送到数据库,将其存储在Session中,将其放入页面上的HiddenField中…

将列表保存到会话或视图状态。

 protected void AddEvent_Click(object sender, EventArgs e) { Event ev = new Event(); ev.Name = txtName.Text; if(Session["events"] == null) { Session["events"] = new List(); } var events = (List)Session["events"]; events.Add(ev); } 

谢谢CodingGorilla,这解决了我的问题。 但我必须为新人增加一件事。

上述就是C#学习教程:维护回发之间的通用列表分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 List events = Events; // Get it out of the viewstate **You should check whether events is null** Events = events; // Add the updated list back into the viewstate 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/992510.html

(0)
上一篇 2021年12月24日
下一篇 2021年12月24日

精彩推荐