Data Binding and Postback

Extend the form to add a label that will display the selected book. Set the autopostback attribute of the drop-down control to true, so that when a selection is made, the page is posted back to the server and the label can be filled with the selected title.

<asp:DropDownList 
ID="ddlBooks" 
autopostback="True"

The problem you’ll encounter is that when the page is reloaded the data will be reloaded as well, and your selection will be lost. You must protect against that by checking the page’s IsPostBack property, which is set to true when the page is posted back, as shown in Example 9-1 (VB.NET) and Example 9-2 (C#).

Tip

It is a recurring theme throughout this book that the differences between C# and VB.NET are syntactic sugar, and not terribly important. Even more interesting, if you know one language, the other is quite understandable. This example shows that quite clearly.

Example 9-1. Checking IsPostBack in VB.NET

Private Sub Form_Load(ByVal sender As object, _
            ByVal e As System.EventArgs) Handles MyBase.Load

   If Not IsPostBack(  ) Then

      ' create the array list
      Dim bookList As New ArrayList(  )

      ' add all the books
      bookList.Add("Programming ASP.NET")
      bookList.Add("Programming C#")
      bookList.Add("Teach Yourself C++ In 21 Days")
      bookList.Add("Teach Yourself C++ In 24 Hours")
      bookList.Add("TY C++ In 10 Minutes")
      bookList.Add("TY More C++ In 21 Days")
      bookList.Add("C++ Unleashed")
      bookList.Add("C++ From Scratch")
      bookList.Add("XML From Scratch")
      bookList.Add("Web Classes FS")
      bookList.Add("Beg. OO Analysis & Design")
      bookList.Add("Clouds To Code")
      bookList.Add("CIG Career Computer Programming")

      ' set the data source
      ddlBooks.DataSource = bookList

      ' bind to the data
      ddlBooks.DataBind(  )
   Else
      lblMsg.Text = "Selected book: " & ddlBooks.SelectedItem.Text
   End If

End Sub

Example 9-2. Checking IsPostBack in C#

private void Page_Load(object sender, System.EventArgs e)
{
   if (! Page.IsPostBack)
   {
      // create the array list
      ArrayList bookList = new ArrayList(  );

      // add all the books
      bookList.Add("Programming ASP.NET");
      bookList.Add("Programming C#");
      bookList.Add("Teach Yourself C++ In 21 Days");
      bookList.Add("Teach Yourself C++ In 24 Hours");
      bookList.Add("TY C++ In 10 Minutes");
      bookList.Add("TY More C++ In 21 Days");
      bookList.Add("C++ Unleashed");
      bookList.Add("C++ From Scratch");
      bookList.Add("XML From Scratch");
      bookList.Add("Web Classes FS");
      bookList.Add("Beg. OO Analysis & Design");
      bookList.Add("Clouds To Code");
      bookList.Add("CIG Career Computer Programming");

      // set the data source
      ddlBooks.DataSource=bookList;

      // bind to the data
      ddlBooks.DataBind(  );
   }
   else
   {
     lblMsg.Text = "Selected book: " + ddlBooks.SelectedItem.Text;
   }
}

In Example 9-1 and Example 9-2, the IsPostBack property is tested. If it returns true, then the page has been posted back to itself by a user taking an action, and the selected item is displayed. If the IsPostBack property returns false, then the book list is populated with data from the ArrayList.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.14.145.128