?? default.aspx.cs
字號:
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace book09
{
/// <summary>
/// ChatRoom 的摘要說明。
/// </summary>
public partial class ChatRoom : System.Web.UI.Page
{
protected void Page_Load(object sender, System.EventArgs e)
{
if (Session["username"].Equals("admin")) //判斷是否管理員
HyperLink1.Enabled = true; //控件由灰色變可用
//注冊Ajax類型
Ajax.Utility.RegisterTypeForAjax(typeof(ChatRoom));
}
#region Web 窗體設計器生成的代碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 該調用是 ASP.NET Web 窗體設計器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 設計器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內容。
/// </summary>
private void InitializeComponent()
{
}
#endregion
public string UserName
{
get
{
return User.Identity.Name;
}
}
/// <summary>
/// 獲取新消息的html字符串
/// </summary>
/// <returns>客戶端輸出的html字符串</returns>
[Ajax.AjaxMethod()]
public string GetNewMsgString()
{
string strMsgHTML = "";
SqlConnection conn = new SqlConnection(
ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "GetNewMsg";
cmd.Parameters.Add("@username", UserName);
conn.Open();
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
if (dr.GetString(1) != "")
{
strMsgHTML += string.Format(
"<span class='chatmsg' style='COLOR: #{0}'>{1} {2} {3} {4} >> {5}</span><br>",
dr.GetString(5),
dr.GetString(1),
TestIsPublic(dr.GetBoolean(6)),
TestYourself(dr.GetString(2)),
dr.GetString(4),
Replace_GTLT(dr.GetString(3)));
}
else
{
strMsgHTML += string.Format(
"<span class='chatmsg' style='COLOR: #{0}'>{1}</span><br>",
dr.GetString(5),
dr.GetString(3));
}
}
}
conn.Close();
SetMsgPos();
return strMsgHTML;
}
/// <summary>
/// 替換字符串中的'<','>'字符
/// </summary>
/// <param name="strInput">輸入字符串</param>
/// <returns>替換后的字符串</returns>
private string Replace_GTLT(string strInput)
{
string strOutput = strInput.Replace("<", "<");
strOutput = strOutput.Replace(">", ">");
return strOutput;
}
/// <summary>
/// 檢查用戶名是否是當前登錄的用戶名
/// </summary>
/// <param name="strInput">用戶名</param>
/// <returns>經過替換的用戶名</returns>
private string TestYourself(string strInput)
{
if (strInput == UserName)
return "你";
else
return strInput;
}
private string TestIsPublic(bool IsPublic)
{
if (IsPublic)
return "對";
else
return "悄悄地對";
}
/// <summary>
/// 記錄已經閱讀過的消息id
/// </summary>
private void SetMsgPos()
{
SqlConnection conn = new SqlConnection(
ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "SetMsgPos";
cmd.Parameters.Add("@username", UserName);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
[Ajax.AjaxMethod()]
public void SendMsg(string strMsg, string strUserTo, string strColor, string strExpression, bool bIsPublic)
{
SqlConnection conn = new SqlConnection(
ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "SendMsg";
cmd.Parameters.Add("@user_from", UserName);
cmd.Parameters.Add("@user_to", strUserTo);
cmd.Parameters.Add("@content", strMsg);
cmd.Parameters.Add("@expression", strExpression);
cmd.Parameters.Add("@color", strColor);
cmd.Parameters.Add("@ispublic", bIsPublic);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
[Ajax.AjaxMethod()]
public string GetOnlineUserString()
{
string strUserlist = "";
SqlConnection conn = new SqlConnection(
ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "GetOnlineUsers";
conn.Open();
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
strUserlist += dr.GetString(1) + ",";
}
}
conn.Close();
return strUserlist.TrimEnd(',');
}
[Ajax.AjaxMethod()]
public void Logout()
{
SqlConnection conn = new SqlConnection(
ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "UserLogout";
cmd.Parameters.Add("@username", UserName);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
//FormsAuthentication.SignOut();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -