protected void Page_Load(object sender, EventArgs e)
{
   if (!IsPostBack)
   {
      //  Tworzymy dwuwymiarow tablic dla listy.
      //  Pierwszy wymiar zawiera tytu ksiki.
      //  Drugi wymiar zawiera numer ISBN.
      string[,] books = {
         {"Programming C#","0596001177"},
         {"Programming Visual Basic .NET","0596004389"},
         {"Programming .NET Windows Applications","0596003218"},
         {"Programming ASP.NET","0596001711"},
         {"WebClasses From Scratch","0789721260"},
         {"Teach Yourself C++ in 21 Days","067232072X"},
         {"Teach Yourself C++ in 10 Minutes","067231603X"},
         {"XML & Java From Scratch","0789724766"},
         {"Complete Idiot's Guide to a Career in Computer Programming",
"0789719959"},
         {"XML Web Documents From Scratch","0789723166"},
         {"Clouds To Code","1861000952"},
         {"C++: An Introduction to Programming","1575760614"},
         {"C++ Unleashed","0672312395"}
      };

      //  W tym miejscu zapeniamy list.
      for (int i = 0; i < books.GetLength(0); i++)
      {
         //  Dodajemy zarwno wartoi Text, jak i Value.
         lbSingle.Items.Add(new ListItem(books[i, 0], books[i, 1]));
         lbMulti.Items.Add(new ListItem(books[i, 0], books[i, 1]))
      }
   }
}

protected void lbSingle_SelectedIndexChanged(object sender, EventArgs e)
{
   //  Check to verify that something has been selected.
   if (lbSingle.SelectedIndex != -1)
   {
      lblSingle.Text = lbSingle.SelectedItem.Text + " ---> ISBN: " +
         lbSingle.SelectedItem.Value;
   }
}

protected void lbMulti_SelectedIndexChanged(object sender, EventArgs e)
{
   string str = "";
   foreach (ListItem li in lbMulti.Items)
   {
      if (li.Selected == true)
      {
         str += "<br/>" + li.Text + " ---> ISBN: " + li.Value;
      }
   }

   // Alternatywna technika.
   // foreach (int i in lbMulti.GetSelectedIndices())
   // {
   //   ListItem li = lbMulti.Items[i];
   //   str += "<br/>" + li.Text + " ---> ISBN: " + li.Value;
   // }

   if (str.Length == 0)
      lblMulti.Text = "Nie zostaa wybrana adna ksika.";
   else
      lblMulti.Text = str;
}
