我在后面的代码中有arraylists,他们没有保留我添加到他们的值。我尝试将它们设为公共静态并且可以正常工作,但问题是我不希望在用户完成表单后保留这些值。当他们需要再次使用表格时,我希望他们被清除。如果未将值设置为公共静态值,则会添加这些值,但是当在表单上添加下一个项目时,第一个项目中的值将从arraylists中消失。请帮忙。
namespace Application
{
public partial class Enquiry : System.Web.UI.Page
{
ArrayList Dates = new ArrayList();
ArrayList Dates2 = new ArrayList();
ArrayList Cost = new ArrayList();
答案 0 :(得分:4)
ASP.NET网页是无状态的。回发时不会自动保存和恢复类属性;每次重新加载页面时,都会实例化一个新的页面类实例,将私有ArrayList
属性重置为空。如果您希望保留值,则必须自行管理,可以使用ViewState
或Session
,也可以在每次加载页面时重建列表。
您可能需要研究ASP.NET page life cycle。它可能会使事情变得更加清晰。
答案 1 :(得分:0)
使用以下示例在viewstate中存储数据。 http://msdn.microsoft.com/en-us/library/bb386448.aspx