Mega Code Archive

 
Categories / ASP.Net Tutorial / Collections
 

Using CustomCollection

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"  Inherits="UsingCustomCollection" %> <!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 a Customer Collection</title> </head> <body>     <form id="form1" runat="server">    <div id="container">       <h1>Using a Customer Collection</h1>       This example illustrates the use of a custom collection       <asp:DropDownList ID="drpSample" runat="server"           DataTextField="Name"          DataValueField="Id" />           </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 partial class UsingCustomCollection : System.Web.UI.Page {     protected void Page_Load(object sender, EventArgs e)     {        Customer c1 = new Customer("1", "A", "AA", "123-4567");        Customer c2 = new Customer("2", "B", "BB", "123-1267");        Customer c3 = new Customer("3", "C", "CC", "123-7823");        Customer c4 = new Customer("4", "D", "DD", "123-6383");        CustomerCollection cc = new CustomerCollection();        cc.Add(c1);        cc.Add(c2);        cc.Add(c3);        cc.Add(c4);        drpSample.DataSource = cc;        drpSample.DataBind();     } } public class CustomerCollection: IEnumerable {    private ArrayList _customers;   public CustomerCollection()   {       _customers = new ArrayList();   }    public void Add(Customer c)    {       if (c != null)          _customers.Add(c);    }    public Customer this[int index]    {       get {          if (index >= 0 && index < _customers.Count)             return (Customer)_customers[index];          else             return null;       }    }    public Customer FindById(string id)    {       foreach (Customer c in _customers)       {          if (c.Id == id)             return c;       }       return null;    }    public IEnumerator GetEnumerator()    {       return _customers.GetEnumerator();    } } 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;     } }