• 0

How to save ArrayList object to ViewState?


Question

//for example

[serializable]

class MyItem

{

public string = "";

}

I created several MyItem objects and saved them to an ArrayList "al". Then I store the arraylist to ViewState

ViewState["Items"] = al;

When the page postback, I retrieve the arraylist

ArrayList al = (ArrayList)ViewState["Items"];

But there are nothing in al. Why?

5 answers to this question

Recommended Posts

  • 0
  LRoling said:
Is there a specific reason you are using the ViewState? Couldn't you just Session the data?

I want to design a simple search page, when the search is done, you must display the results, so I want to save the results to a Arraylist that I can display them again without reconnect the database when the page postpack. Do you have any other good plans? thanks.

  • 0
  zhwcn said:
I want to design a simple search page, when the search is done, you must display the results, so I want to save the results to a Arraylist that I can display them again without reconnect the database when the page postpack. Do you have any other good plans? thanks.

Use either Session or System.Web.Caching.Cache. Don't use the ViewState if you can avoid it.

  • 0

The question is: when are you storing your ArrayList in ViewState and when are you trying to access the stored value again? Could be that the ViewState is not yet initialized when you're trying to access it to fetch the ArrayList.

If you're using Visual Studio you could try to debug and step through your code to ensure that things are done in correct order (ASP.NET Page Life Cycle).

  • 0
  jpalo said:
The question is: when are you storing your ArrayList in ViewState and when are you trying to access the stored value again? Could be that the ViewState is not yet initialized when you're trying to access it to fetch the ArrayList.

If you're using Visual Studio you could try to debug and step through your code to ensure that things are done in correct order (ASP.NET Page Life Cycle).

yeah, you are right. I modified my code, put the viewstate retrieve block into OnLoad(), this time it works as I expect. Thank U!

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.