Software developers can follow the next basic principle. They can save all member variables to view state when the Page.PreRender event occurs and retrieve them when the Page.Load event occurs. The Page.Load event happens every time the page is created. In case of a postback, the Load event occurs first, followed by any other control events. The next example illustrates the principle:

Public Class PreservedMembers1
          Inherits System.Web.UI.Page

        Dim firstName, lastName As String
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
          If Me.IsPostBack Then
            ‘Restore variables
            firstName = CStr(ViewState(“FirstName”))
            lastName = CStr(ViewState(“LastName”))
          End If
        End Sub
        Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
          ‘Keep variables
          ViewState(“FirstName”) = firstName
          ViewState(“LastName”) = lastName
        End Sub

        Protected Sub cmdSave_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdSave.Click
          firstName = txtFirstName.Text
          txtFirstName.Text = “”

          lastName = txtLastName.Text
          txtLastName.Text = “”
        End Sub

        Protected Sub cmdLoad_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdLoad.Click
          txtFirstName.Text = firstName
          txtLastName.Text = lastName
        End Sub

End Class