Hash Table

MCAD/MCSD DEVELOPING WEB APPLICATION WITH VISUAL BASIC.NET and VISUAL C#.NET is a very good book to start web programming with, While http://msdn2.microsoft.com/en-us/library/ is a very good website for reference.

Well, they want a form or table, where user can enter data, say, 3 columns and 4 rows.

Notification type Notification information Preference
Text Message ____________________ _________
Fax ____________________ _________
Tel ____________________ _________

Button

After entering information, user will click the button and a message will be sent into some table in sql server database. Preference is a number 1-5. Duplicated numbers are not allowed. We can’t have both Tel and Fax as 1. Message should be sorted, like: 1 Notification information Notification type. 2 …. Null Preference is allowed.When users click the button, I create a hash table and put data into hash table. Hash table is a collection of key/value pair where, given a key it can retrieve the corresponding value. Hash table throw exception at duplicated value. So when duplicated values are entered, catch block use a piece of javascript(asp.net can’t pop up windows) to pop up a window to inform users. Hash table won’t sort. So I put the key of hash table in an arraylist, and use sort() method of arraylist to sort the key and retrieve its corresponding value and append it to string.

Here, I simply print the message instead of inserting into database.
The lab contains 3 files. Default.aspx, Default.aspx.cs, and Web.Config. Web.Config is the default one. I didn’t do anything to it.

Default.aspx.cs:

using System;
using System.Data;
using System.Configuration;
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;
using System.Text;
using System.Collections;

public partial class _Default : System.Web.UI. Page

{

protected void Page_Load( object sender, EventArgs e)

{

}

protected void btn1_Click( object sender, EventArgs e)

{
string Preference = "" ;
StringBuilder sb = new StringBuilder ();

string TxtMessage = TxtBox1.Text;
string CellPhone = TxtBox2.Text;
string EmailContact = TxtBox3.Text;
string WorkPhone = TxtBox4.Text;
string Fax = TxtBox5.Text;

string pref1 = ". TextMessage: " + TxtMessage + "; " ;
string pref2 = ". CellPhone: " + CellPhone + "; " ;
string pref3 = ". Email: " + EmailContact + "; " ;
string pref4 = ". WorkPhone: " + WorkPhone + "; " ;
string pref5 = ". Fax: " + Fax + "; " ;

Hashtable Zhash = new Hashtable ();
try

{

if (DropDownList1.SelectedItem.Text != null &
DropDownList1.SelectedItem.Text != "" )

Zhash.Add(DropDownList1.SelectedItem.Text, pref1);

if (DropDownList2.SelectedItem.Text != null &
DropDownList2.SelectedItem.Text != "" )

Zhash.Add(DropDownList2.SelectedItem.Text, pref2);

if (DropDownList3.SelectedItem.Text != null &
DropDownList3.SelectedItem.Text != "" )

Zhash.Add(DropDownList3.SelectedItem.Text, pref3);

if (DropDownList4.SelectedItem.Text != null &
DropDownList4.SelectedItem.Text != "" )

Zhash.Add(DropDownList4.SelectedItem.Text, pref4);

if (DropDownList5.SelectedItem.Text != null &
DropDownList5.SelectedItem.Text != "" )

Zhash.Add(DropDownList5.SelectedItem.Text, pref5);

ArrayList sorter = new ArrayList (Zhash.Keys);

sorter.Sort();

foreach ( string key in sorter)

{

sb.Append(key);
sb.Append(Zhash[key]);

}

Preference = sb.ToString();
Response.Write(Preference);

}

catch ( ArgumentException ex)

{

string JString = " " ;
Page.ClientScript.RegisterStartupScript( this .GetType(), "PopupScript" , JString);

}

}

}

Can't post aspx page. It shows as a table instead of code. I just create a table drag and drop textboxes and dropdownlists into table cells.  In the catch block above, "string JString" should be initialized. Instead of showing the code it pops up a window here. When I first did the work, it shows the code but doesn't pop up windows. I feel I am both a bad blogger  and a bad programmer.  :) Will find a way to post it.




登录后才可评论.