> tshad wrote:
>> I have a page that is using a List collection (list<>) and I want to save
>> it across postbacks.
>> I tried adding it to my ViewState but get an error:
>> Type 'AutoUPS.ClientList' in Assembly 'AutoUPS, Version=1.0.0.0,
>> Culture=neutral, PublicKeyToken=null' is not marked as serializable.
>> How do I set this up so I can save it?
>> In my web page I am doing:
>> public partial class AutoUPS : System.Web.UI.Page
>> {
>> private int exceptionDrop;
>> public static ClientList clientList = new ClientList();
>> ...
>> protected void Page_Load(object sender, EventArgs e)
>> {
>> if (!Page.IsPostBack)
>> {
>> }
>> else
>> {
>> clientList = (ClientList)ViewState["ClientList"];
>> }
>> }
>> protected override void OnPreRender(EventArgs e)
>> {
>> base.OnPreRender(e);
>> ViewState["ClientList"] = clientList;
>> }
>> I am calling this from another page so I have my ClientList set as a
>> static and then want to save it so I don't have to call the database all
>> the time.
>> Not sure if this is the best way but it seemed so.
>> Thanks,
>> Tom
> To make the class serializable, you add the [Serializable()] attribute to
> it. It also requires the class to have properties that are both readable
> and writable, and the class needs a parameterless constructor so that the
> deserializing can recreate an instance.
All the fields (3) are int or string. > You could save the list in a Session variable, then it would not be sent
> to the client. Consider the memory usage though, if you use too much
> memory for each session that limits the number of session that the site
> can handle. You may want the limitation to be how many requests the server
> can handle per second rather than an absolute limit on the number of
> visitors.
Also, you have a time problem if they keep the page open (this is an office