1.共四个页面,Default.aspx默认主页,Default2.aspx聊天室 default3.aspx显示用户列表,default4.aspx显示聊天内容,添加一个Global.asax全局程序集文件,初始化 Application对象值
2.在global.asax中
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
//建立用户列表
string user = "";//用户列表
Application["user"] = user;
Application["userNum"] = 0;
string chats = "";//聊天记录
Application["chats"] = chats;
Application["current"] = 0;//聊天记录数
}
void Application_End(object sender, EventArgs e)
{
// 在应用程序关闭时运行的代码
Application["user"] = "";
Application["chats"] = "";
}
3.DEFAULT.ASPX中
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
int p_judge = 0;
p_judge = Convert.ToInt32(Request["value"]);
if (!IsPostBack)
{
if (p_judge == 1)
Response.Write("<script>alert('该用户已经存在')</script>");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Application.Lock();
int p_num;//在线人数
string p_name;//登录用户
string p_names;//已在线用户
string[] p_users;//用户在线数组
p_num = int.Parse(Application["userNum"].ToString());
if (TextBox1.Text == "")
{
Response.Write("<script>alert('用户名不能为空')</script>");
TextBox1.Focus();
}
else
{
p_name = TextBox1.Text.Trim();
p_names = Application["user"].ToString();
p_users = p_names.Split(',');
for (int i = 0; i <= p_num - 1; i++)
{
if (p_name == p_users[i].Trim())
{
int p_judge = 1;
Response.Redirect("Default.aspx?value="+p_judge);
}
}
if (p_num == 0)
Application["user"] = p_name.ToString();
else
Application["user"] = Application["user"] + "," + p_name.ToString();
p_num += 1;
Application["userNum"] = p_num;
Session["userName"] = TextBox1.Text.Trim();
Application.UnLock();
Response.Redirect("Default2.aspx");
}
}
4.default2.aspx 采用 frame 的SRC 属性来显示default3 default4
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = Session["userName"].ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
int p_current = int.Parse(Application["current"].ToString());
Application.Lock();
if (p_current == 0 || p_current > 20)
{
p_current = 0;
Application["chats"] = Session["userName"].ToString() + "说:" + TextBox1.Text.Trim() + "(" + DateTime.Now.ToString() + ")";
}
else
{
Application["chats"] = Application["chats"].ToString() + "," + Session["userName"].ToString() + "说:" + TextBox1.Text.Trim() + "(" + DateTime.Now.ToString() + ")";
}
p_current += 1;
Application["current"] = p_current;
Application.UnLock();
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Write("<script>window.close()</script>");
}
5.default3.aspx
protected void Page_Load(object sender, EventArgs e)
{
ArrayList ItemList = new ArrayList();
Application.Lock();
string p_names;
string[] p_user;
int p_num = int.Parse(Application["userNum"].ToString());
p_names = Application["user"].ToString();
p_user = p_names.Split(',');
for (int i = (p_num - 1); i >= 0; i--)
{
ItemList.Add(p_user[i].ToString());
}
ListBox1.DataSource = ItemList;
ListBox1.DataBind();
Application.UnLock();
}
6.defaut4.aspx
protected void Page_Load(object sender, EventArgs e)
{
int p_current = int.Parse(Application["current"].ToString());
Application.Lock();
string p_chats = Application["chats"].ToString();
string[] p_chat = p_chats.Split(',');
for (int i = p_chat.Length - 1; i >= 0; i--)
{
if (p_current == 0)
{
TextBox1.Text = p_chat[i].ToString();
}
else
{
TextBox1.Text = TextBox1.Text + "/n" + p_chat[i].ToString();
}
}
Application.UnLock();
}