Mega Code Archive

 
Categories / ASP.Net Tutorial / Collections
 

ArrayList with custom objects

<%@ 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;        }     } }