title: ASP.NET Populating Listbox issue
body: <p>As of right now I am trying to create an ASP.NET page which will list books from a category, in a listbox based upon which category button you choose and then I have another two buttons (one for DESC order and one for ASC order). Now the issue is when I click on the ASC or DESC button after hitting the fiction button and populating the list box it wipes the list box.</p>
  
  <p>I posted a similar question earlier, got some fixes, but it is still wiping the listbox when I hit the ASC or DESC buttons.</p>
  
  <p>I'm pretty new to ASP.NET so simple or "newb-friendly" explanations and code-examples/fixes are very welcome!</p>
  
  <p>Thanks in advance! </p>
  
  <p>Code Below</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Web;
  using System.Web.UI;
  using System.Web.UI.WebControls;
  
  public partial class partin : System.Web.UI.Page
  {
  private List&lt;String&gt; books = new List&lt;String&gt;();
  
  void Page_PreRender()
  {
      Item_Listbox.DataSource = books;
      Item_Listbox.DataBind();   
  }
  
  int SortASC(string x, string y)
  {
      return String.Compare(x, y);
  }
  
  int SortDESC(string x, string y)
  {
      return String.Compare(x, y) * -1;
  }
  
  protected void Page_Load(object sender, EventArgs e)
  {
      if (!IsPostBack)
      {
  
          Header_Label.Text = "Welcome! Please select a book category.";
          Item_Listbox.DataSource = books;
          Item_Listbox.DataBind();
  
      }
  
  }
  
  protected void Fiction_Click(object sender, EventArgs e)
  {
  
          Header_Label.Text = "Fiction Section";
  
          books.Add("Title: The Old Man and The Sea | Decription: An epic novel. | Price: 10 USD | Quantity: 3");
          books.Add("Title: A Game of Thrones | Decription: A tale of fire and ice. | Price: 15 USD | Quantity: 6");
          books.Add("Title: Dracula | Decription: A book about vampires. | Price: 5 USD | Quantity: 7");
          books.Add("Title: Twilight | Decription: An awful book. | Price: Free | Quantity: 1000");
  
          Item_Listbox.DataSource = books;
          Item_Listbox.DataBind();
  
  }
  
  
  protected void Non_Fiction_Click(object sender, EventArgs e)
  {
      Header_Label.Text = "Non-Fiction Section";
  
  
  
  }
  protected void Self_Help_Click(object sender, EventArgs e)
  {
      Header_Label.Text = "Self Help Section";
  
  
  
  }
  
  protected void Sort_Command(object sender, CommandEventArgs e)
  {
      if (e.CommandName == "Sort")
      {
          switch (e.CommandArgument.ToString())
          {
              case "ASC":
                  books.Sort(SortASC);
                  break;
              case "DESC":
                  books.Sort(SortDESC);
                  break;
          }
  
      }
      Item_Listbox.DataSource = books;
      Item_Listbox.DataBind();  
  }
  
  
  
  }
  </code></pre>
  
  <p>ASPX Code:</p>
  
  <pre><code>    &amp;nbsp;&lt;asp:Panel 
          ID="Navigation" runat="server" Height="276px" Width="197px" 
          CssClass="Navigation" BorderColor="Black" BorderStyle="Double"&gt;
      &lt;asp:Button ID="Fiction" runat="server" Text="Fiction" Width="145px" 
              CssClass="Nav_buttons" onclick="Fiction_Click" /&gt;
      &lt;asp:Button ID="Non_Fiction" runat="server" Text="Non-Fiction" Width="145px" 
              CssClass="Nav_buttons" onclick="Non_Fiction_Click" /&gt;
      &lt;asp:Button ID="Self_Help" runat="server" Text="Self Help" Width="145px" 
              CssClass="Nav_buttons" onclick="Self_Help_Click" /&gt;
      &lt;asp:Button ID="New_Item" runat="server" Text="Add New Item" Width="145px" CssClass="Nav_buttons" /&gt;        
  &lt;/asp:Panel&gt;
  &lt;asp:Panel ID="Books_Panel" runat="server" CssClass="Books_Panel" Height="409px" 
          BorderStyle="Double"&gt;
          &lt;asp:Label ID="Header_Label" runat="server" 
              style="top: 79px; left: 693px; position: absolute; height: 19px; width: 234px" 
              Text="Label"&gt;&lt;/asp:Label&gt;
  
          &lt;asp:ListBox ID="Item_Listbox" runat="server" 
  
  
              style="top: 204px; left: 443px; position: absolute; height: 136px; width: 732px" 
              AutoPostBack="True"&gt;
          &lt;/asp:ListBox&gt;
  
          &lt;asp:Button ID="Ascending_Button" runat="server" 
              style="top: 375px; left: 723px; position: absolute; height: 26px; width: 169px" 
              Text="Ascending Order" CommandName="Sort" CommandArgument="ASC" 
              OnCommand="Sort_Command" /&gt;
  
          &lt;asp:Button ID="Descending_Button" runat="server" 
              style="top: 405px; left: 723px; position: absolute; height: 26px; width: 169px" 
              Text="Descending Order" CommandName="Sort" CommandArgument="DESC" 
              OnCommand="Sort_Command" /&gt;
  
          &lt;asp:DropDownList ID="Cat_Menu" runat="server"&gt;
          &lt;/asp:DropDownList&gt;
  
      &lt;/asp:Panel&gt;
  </code></pre>