ArrayList with custom objects : ArrayList « Collections « ASP.NET Tutorial






<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="UsingArrayList" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
   <title>Using an ArrayList</title>
</head>
<body>
   <form id="form1" runat="server">
      <div id="container">
         <h1>Using an ArrayList</h1>
         
         In this example, the drop-down list is 
         data bound to an <code>ArrayList</code>.
         
         
         <asp:Panel ID="panList" runat="server" >
         <h2>Select customer from list:</h2>
         
         <asp:ListBox id="lboxCustomers" runat="server" AutoPostBack="True"
            DataTextField="Name"
           DataValueField="Id"  
           OnSelectedIndexChanged="SelectCustomer" />
        
         </asp:Panel>
         
      <asp:Panel ID="panCustomer" runat="server" CssClass="panelBox">          
        <h2>Customer Information</h2>
         Id:<br />
        <asp:TextBox id="txtId" runat="server" />
         First Name:<br />
        <asp:TextBox id="txtFirst" runat="server" />
         Last Name:<br />
        <asp:TextBox id="txtLast" runat="server" />
         Phone Number:<br />
        <asp:TextBox id="txtPhone" runat="server" />
      </asp:Panel>
      </div>
   </form>
</body>
</html>

File: Default.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public abstract class AbstractEntity
{

   private string _id;

  public AbstractEntity(string id)
  {
      _id = id;
  }


   public string Id
   {
      get { return _id; }
      set { _id = value; }
   }


   public abstract bool IsValid
   {
      get;
   }
}

public class Customer: AbstractEntity 
{
   // data members
   private string _firstName;
   private string _lastName;
   private string _phone;

   public Customer(string id, string firstName, string lastName, string phone): base(id)
   {
      _firstName = firstName;
      _lastName = lastName;
      _phone = phone;
   }


   public string FirstName
   {
      get { return _firstName; }
      set { _firstName = value; }
   }
   public string LastName
   {
      get { return _lastName; }
      set { _lastName = value; }
   }
   public string Phone
   {
      get { return _phone; }
      set { _phone = value; }
   }
   public string Name
   {
      get { return LastName + ", " + FirstName; }
   }

   public override bool IsValid
   {
      get
      {
         if (Id.Length > 0 && LastName.Length > 0)
            return true;
         else
            return false;
      }
   }

   public override string ToString()
   {
      return Id + "," + Name + "," + Phone; 
   }
}

public partial class UsingArrayList : System.Web.UI.Page
{
   private ArrayList _customers;

   private void Page_Load(object sender, System.EventArgs e)
   {
      _customers = new ArrayList();

      FillCustomers();

      if (!IsPostBack)
      {
         lboxCustomers.DataSource = _customers;
         lboxCustomers.DataBind();
         panCustomer.Visible = false;
      }
   }

   private void FillCustomers()
   {
      Customer c1 = new Customer("1", "A", "AA", "123-4567");
      Customer c2 = new Customer("2", "B", "BB", "456-1267");
      Customer c3 = new Customer("3", "C", "CC", "564-7823");
      Customer c4 = new Customer("4", "D", "DD", "253-6383");

      _customers.Add(c1);
      _customers.Add(c2);
      _customers.Add(c3);
      _customers.Add(c4);
   }


    protected void SelectCustomer(object sender, System.EventArgs e)
    {
       int index = lboxCustomers.SelectedIndex;
    
       if (index >= 0 && index <= _customers.Count)
       {
          Customer c = (Customer)_customers[index];
    
          txtId.Text = c.Id;
          txtFirst.Text = c.FirstName;
          txtLast.Text = c.LastName;
          txtPhone.Text = c.Phone;
    
          panCustomer.Visible = true;
       }
    }
}








7.2.ArrayList
7.2.1.Add objects to ArrayList (C#)
7.2.2.Add objects to ArrayList (VB)
7.2.3.Foreach loop (C#)
7.2.4.Foreach loop (VB)
7.2.5.Using an ArrayList instead of an array (C#)
7.2.6.Using an ArrayList instead of an array (VB)
7.2.7.Using a custom strongly typed PersonList (C#)
7.2.8.Using a custom strongly typed PersonList (VB)
7.2.9.ArrayList with custom objects
7.2.10.Bind ArrayList to DropDownList