⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chat.aspx.cs

📁 一个 用Ajax实现聊天室的简单例子 不全的地方指点
💻 CS
字号:
using System;
using System.Data;
using System.Configuration;
using System.Collections.Generic;
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 ChatBLL;
using ChatModel;
using AjaxControlToolkit;

public partial class Chat : System.Web.UI.Page
{
    int userID = 0;  //用户标识

    FriendService fs = new FriendService();
    MessageService ms = new MessageService();
    UserService usc = new UserService();

    Label lblName =null;

    protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
            ViewState["isPublic"] = 1; //聊天状态
        lblTitle.Text = "欢迎来到新语聊天系统,当前在线人数:";
        userID = Convert.ToInt32(Session["userID"]);
        myInfo();
        dlPublicBand();
        showFriends();
    }

    //自己的资料
    void myInfo()
    { 
        User us=usc.getFace(userID);
        imgFace.ImageUrl = "~/Face/" + us.face.ToString() + ".bmp";
        lblUser.Text = us.name;
    }

    //取出公共信息
    void dlPublicBand()
    {
        dlPublic.DataSource = ms.getPublicMessage();
        DataBind();
    }

    //私人信息
    void dlPraviteBand()
    {
        dlPravite.DataSource = ms.getPrivateMessage(userID);
        DataBind();
    }

    //显示好友
    void showFriends()
    {
        List<FriendType> list = fs.getAllFriendType();  //取出好友类型
        for (int i = 0; i < list.Count; i++)
        {
            AccordionPane ap = new AccordionPane();
            Label lblType = new Label();
            lblType.Text = list[i].typeName;
            int typeID = list[i].ID;
            ap.HeaderContainer.Controls.Add(lblType);

            List<User> ls = fs.searchMyFridens(userID, typeID);  //取出好友头像和昵称
            for (int j = 0; j < ls.Count; j++)
            {
                ImageButton imgFriend = new ImageButton();
                imgFriend.ImageUrl = "~/Face/" + ls[j].face.ToString() + ".bmp";  
                imgFriend.Width = 25;
                imgFriend.Height = 25;
                imgFriend.AlternateText = ls[j].name;
                imgFriend.CommandArgument = ls[j].ID.ToString();
                imgFriend.Click += new ImageClickEventHandler(imgFriend_Click);
                lblName = new Label();
                lblName.Text = "  " + ls[j].name + "</br>";
                ap.ContentContainer.Controls.Add(imgFriend);
                ap.ContentContainer.Controls.Add(lblName);
            }
            Accordion1.Panes.Add(ap);
        }
    }

    //文本框获得姓名
    void imgFriend_Click(object sender, ImageClickEventArgs e)
    {
        txtFriend.Text = "";
        string str = ((ImageButton)sender).AlternateText;
        txtFriend.Text = ((ImageButton)sender).AlternateText;
        ViewState["friendID"] = Convert.ToInt32(((ImageButton)sender).CommandArgument);
    }


    //是否启用私聊
    protected void chkIsPublic_CheckedChanged(object sender, EventArgs e)
    {
        if (chkIsPublic.Checked == true)
        {
            dlPraviteBand();
            panPrivate.Visible = true;
            ViewState["isPublic"] = 0;
        }
        else
        {
            panPrivate.Visible = false;
            ViewState["isPublic"] = 1;
        }
    }

    //退出程序
    protected void btnExit_Click(object sender, EventArgs e)
    {
        Page.ClientScript.RegisterStartupScript(GetType(), "", "<script>window.close()</script>");
    }

    //发信息
    protected void btnAccept_Click(object sender, ImageClickEventArgs e)
    {
        Message m = new Message();
        m.fromTo = new User();
        m.fromTo.ID = userID;
        m.sendTo = new User();
        m.sendTo.ID = Convert.ToInt32(ViewState["friendID"]);
        m.content = txtContent.Text;
        m.timer = DateTime.Now;
        m.isPublic = Convert.ToInt32(ViewState["isPublic"]);
        ms.addMessage(m);
    }

    //定时刷新
    protected void Timer1_Tick(object sender, EventArgs e)
    {
        dlPublicBand();
        dlPraviteBand();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -