在列表中添加<;字符串>;覆盖以前的值C#
我有一个非常简单的C#程序要编写(针对ASP.NETWeb应用程序),它从文本框中获取输入,存储在列表中,然后显示在列表框中。这是我的代码:在列表中添加<;字符串>;覆盖以前的值C#,c#,asp.net,list,webforms,C#,Asp.net,List,Webforms,我有一个非常简单的C#程序要编写(针对ASP.NETWeb应用程序),它从文本框中获取输入,存储在列表中,然后显示在列表框中。这是我的代码: public partial class Form: System.Web.UI.Page { List<string> students = new List<string>(); protected void Page_Load(object sender, EventArgs e)
public partial class Form: System.Web.UI.Page
{
List<string> students = new List<string>();
protected void Page_Load(object sender, EventArgs e)
{
ListBox.DataSource = students;
}
protected void Display_Click(object sender, EventArgs e)
{
if (this.students.Count != 0)
{
for (int x = 0; x < students.Count; x++)
{
ListBox.Items.Add((x + 1).ToString() + ". " + students[x]);
}
}
}
protected void AddStudent_Click(object sender, EventArgs e)
{
if(tbxStudentInput.Text != "")
{
students.Add(tbxStudentInput.Text);
tbxStudentInput.Text = "";
}
}
}
公共部分类表单:System.Web.UI.Page
{
列出学生=新建列表();
受保护的无效页面加载(对象发送方、事件参数e)
{
ListBox.DataSource=学生;
}
受保护的无效显示\u单击(对象发送方,事件参数e)
{
如果(this.students.Count!=0)
{
for(int x=0;x
但是,每次添加到列表时,它都会覆盖上一个值。当我试图在列表框中显示存储的值时,它说count是0。请您告诉我,我做错了什么,没有正确存储列表中的值。谢谢每次点击表单时,它都会创建新的学生实例,因为HTTP是无状态的 尝试移动学生的实例化,即列表学生=新列表();在静态控制器中 i、 e
静态页面()
{
学生=新列表();
}
理想的方法是从数据库中获取它。每次加载页面时,您的列表都是空的。HTTP是无状态的,如果要保存用户状态,必须这样做。
static Page()
{
students = new List<string>();
}