正文

.net_Ajax聊天室项目系列解读(Defalut.aspx.cs)2008-10-31 17:31:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yzrj/39182.html

分享到:

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;
using System.Text;
public partial class _Default : System.Web.UI.Page
{
    //获取当前在线用户的列表
    protected void Timer2_Tick(object sender, EventArgs e)
    {
        StringBuilder sb = new StringBuilder("<ul>", 300);//输出的字符串对象
        foreach (ChatUser user in Room.Instance.GetAllUsers())//遍历每个在线用户,构造出字符串
        {
            string temp = Server.HtmlEncode(user.Name);//编码
            sb.Append("<li><a href=\"#\" onclick=\"javascript:document.getElementById('mtowho').value='" + temp + "';\">" + temp + "</a></li>");
        }
        sb.Append("</ul>");
        UserList.InnerHtml = sb.ToString();
    }
    //获取聊天消息
    protected void Timer1_Tick(object sender, EventArgs e)
    {
        StringBuilder sb = new StringBuilder(3000);//聊天消息的字符串表示
        foreach (Msg chatMessage in Room.Instance.GetAllMessages())//遍历所有消息,分别添加
        {
            string UserName = Server.HtmlEncode(chatMessage.UserName);//账号
            string Message = Server.HtmlEncode(chatMessage.Message);//信息
            string OtherName = Server.HtmlEncode(chatMessage.OtherName);//接收者账号
            string Color = Server.HtmlEncode(chatMessage.Color);//信息的颜色
            string DateTime = Server.HtmlEncode(chatMessage.DateTime.ToLongTimeString());//发送时间
            string Img = Server.HtmlEncode(chatMessage.Img);//表情符号
            sb.Append("<font color=\"#FF0000\">" + DateTime + "</font>");
            sb.Append(" [<font color=\"#663300\">" + UserName + "</font>] 对 [<font color=\"#663300\">");
            sb.Append(OtherName + "</font>] 说:");
            string msg = Message;
            if (chatMessage.Color != "") msg = "<font color=\"" + chatMessage.Color + "\">" + msg + "</font>";
            if (chatMessage.IsBold == "1") msg = "<b>" + msg + "</b>";
            if (chatMessage.IsBold == "2") msg = "<i>" + msg + "</i>";
            if (Img != "") sb.Append("<img src=face/" + chatMessage.Img + ">");
            sb.Append(msg);
            sb.Append("<br/>");//一条消息的字符串构造完成
        }
        ChatContent.InnerHtml = sb.ToString();
    }
    //发送聊天消息  
    protected void Button2_Click(object sender, EventArgs e)
    {
        string message = UserInputTextBox.Value;//消息
        string userName = User.Identity.Name;//用户名
        string othername = mtowho.Value;//发送对方的账号
        string color = mfcolor.Value; //消息颜色
        string img = elist.Value;//表情图表
        string isbold = mfont.Value;//是否黑体或斜体
        Room.Instance.SendMessage(userName, othername, message, isbold, color, img);//发送
        UserInputTextBox.Value = "";
        UserInputTextBox.Focus();
    }
    //更新用户在线时间
    protected void Timer3_Tick(object sender, EventArgs e)
    {
        string userName = User.Identity.Name;//账号
        Room.Instance.GetUser(userName).Update();
    }
}

阅读(2129) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册