OOP Class12
Contents
Dymnically Adding Elements
Array
Say we have an empty drop down list.
<asp:DropDownList id="ddlCheese" autopostback="True" runat="server" />
Since we know that all Lists in the framework contain ListItems we can dymaically add a bunch of cheeses by using a for loop that creates and add ListItems.
ListItem has several constuctors
Visibility | Constructor | Parameters |
public | ListItem | ( ) |
public | ListItem | ( String text ) |
public | ListItem | ( String text , String value ) |
public | ListItem | ( String text , String value , Boolean enabled ) |
<csharp>
//an array of names of cheese string [] aryNames = new string[5]; aryNames [0] = "Feta"; aryNames [1] = "Colby"; aryNames [2] = "Gruyere"; aryNames [3] = "Edam"; aryNames [4] = "Colby";
foreach (string cheeseName in aryNames) { ListItem newItem = new ListItem(cheeseName, cheeseName); //get a new list item //with i for string text and i for value ddlCheese.Items.Add(newItem); }</csharp>
ArrayList of Objects
<csharp>//an arraylist of cheeses
Cheese Feta = new Cheese("Feta"); Cheese Colby = new Cheese("Colby"); Cheese Gruyere = new Cheese("Gruyere"); Cheese Edam = new Cheese("Edam"); ArrayList alCheeses = new ArrayList(); alCheeses.Add(Feta); alCheeses.Add(Colby); alCheeses.Add(Gruyere); alCheeses.Add(Edam);</csharp>
and the cheese class <csharp>public class Cheese {
public string Name; public Milks MilkType; public string Region; public Cheese() { } public Cheese(string name) { this.Name = name; } public enum Milks { Cows, Goats, Mix, Vegetarian }
}</csharp>
Then you can bind the new cheese arraylist to a dropdown box.
Saving the Arraylist in the Session
Wouldn't it be nice if we make our own cheese and add them to the arraylist. Here is an exmaple where you can dynamically add cheeses to the arraylist. The arraylist is preserved by saving it in a session variable between page hits. The first cheese 'Cheddar' is added to the Session in the initial page hit.
http://iam.colum.edu/oop/classsource/class12/CheeseObjectSession.aspx - source
Final verson of the cheese saved in a session. This one added the MIlkType Enum and Uses a more abstracted method to add the arraylist to the ListControl.
http://iam.colum.edu/oop/classsource/class12/CheeseObjectSession2.aspx - source