Asp.net 自定义类列表初始化
我有一个带有books对象的列表视图,其中有一个按钮,当我单击该按钮时,我想将该对象添加到我的自定义类(book)列表中,因此我在代码隐藏页面类中声明了一个列表:Asp.net 自定义类列表初始化,asp.net,listview,c#-4.0,Asp.net,Listview,C# 4.0,我有一个带有books对象的列表视图,其中有一个按钮,当我单击该按钮时,我想将该对象添加到我的自定义类(book)列表中,因此我在代码隐藏页面类中声明了一个列表: public List<Book> booklist; 但我得到“对象引用未设置为对象的实例”。错误:为了在每次回发中保留数据,我应该在哪里初始化列表?在您的解决方案中,您的列表在每次请求后都会被销毁。 更好的解决方案是将列表存储在会话中,以便在请求之间保持列表的分配 protected void Page_Load(o
public List<Book> booklist;
但我得到“对象引用未设置为对象的实例”。错误:为了在每次回发中保留数据,我应该在哪里初始化列表?在您的解决方案中,您的列表在每次请求后都会被销毁。 更好的解决方案是将列表存储在会话中,以便在请求之间保持列表的分配
protected void Page_Load(object sender, EventArgs e)
{
if (Session["MyList"] == null)
Session["MyList"] = new List<Book>();
booklist = (List<Book>) Session["MyList"];
}
受保护的无效页面加载(对象发送方,事件参数e)
{
if(会话[“MyList”]==null)
会话[“MyList”]=新列表();
booklist=(List)会话[“MyList”];
}
protected void DoTheCommand(object sender, ListViewCommandEventArgs e)
{
string commandName = e.CommandName;
ListViewItem selectedItem = e.Item;
if (commandName == "Foo")
{
string[] commandArgs = e.CommandArgument.ToString().Split(new char[] { ',' });
Book b = new Book()
{
BookId = int.Parse(commandArgs[0]),
Name = commandArgs[1],
Author = commandArgs[2],
Price = int.Parse(commandArgs[3])
};
booklist.Add(b);
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (Session["MyList"] == null)
Session["MyList"] = new List<Book>();
booklist = (List<Book>) Session["MyList"];
}