您的位置:首页 > 编程语言 > ASP

asp.net 网页在线即时聊天

2010-10-11 18:45 330 查看


code:

Default.aspx.cs

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;

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

protected void Page_Load(object sender, EventArgs e)
{

if (!IsPostBack)
{
if (Request["p1"] != null)
{

this.TextBox3.Text = Request["p1"].ToString();
this.TextBox2.Focus();

}
else
{

this.TextBox2.Focus();

}

}

this.Label1.Text = Application["count"].ToString();
this.Label2.Text = HttpContext.Current.Request.UserHostAddress;
this.Label4.Text = DateTime.Now.ToString();

SqlConnection s1 = new SqlConnection("Data Source=JAMMY-PC//SQLEXPRESS;Initial Catalog=talk;User ID=sa;Password=123.com");
s1.Open();
SqlCommand cmd = new SqlCommand("select * from talk", s1);
SqlDataReader r1 = cmd.ExecuteReader();
while (r1.Read())
{

this.TextBox1.Text = this.TextBox1.Text + "/n"  + r1.GetValue(1).ToString()  + r1.GetValue(3).ToString() + "/n说:" + r1.GetValue(2).ToString() + "/r/n";
//  this.Label3.Text = "<span style="/" mce_style="/""color: #ff0000/">" + r1.GetValue(1).ToString() + " </span> ";
}
r1.Close();
Page.RegisterStartupScript("g1", "<mce:script type="text/javascript"><!--
b1();
// --></mce:script>");
//  ScriptManager.RegisterStartupScript(this.Button1, this.GetType(), "alertScript", "b1();", true);
s1.Close();

//  tbInput.Attributes.Add("onkeydown", "SubmitKeyClick(‘btnOK’);");

this.TextBox2.Attributes.Add("onkeydown", "SubmitKeyClick('Button1');");

}

protected void Button1_Click2(object sender, EventArgs e)
{

if (this.TextBox2.Text.Trim() != "" && this.TextBox3.Text== "")
{
this.TextBox1.Text = "";

SqlConnection s1 = new SqlConnection("Data Source=JAMMY-PC//SQLEXPRESS;Initial Catalog=talk;User ID=sa;Password=123.com");
s1.Open();

SqlCommand cmd1 = new SqlCommand("insert into talk values('" + this.Label2.Text + "','" + this.TextBox2.Text.Trim() + "','" +DateTime.Now.ToString() + "')", s1);
cmd1.ExecuteNonQuery();
this.TextBox2.Text = "";

SqlCommand cmd = new SqlCommand("select * from talk", s1);
SqlDataReader r1 = cmd.ExecuteReader();
while (r1.Read())
{

this.TextBox1.Text = this.TextBox1.Text + "/n" + r1.GetValue(1).ToString() + "  " + r1.GetValue(3).ToString() + "/n说:" + r1.GetValue(2).ToString() + "/r/n";
}
r1.Close();

ScriptManager.RegisterStartupScript(this.Button1, this.GetType(), "alertScript", "b1();", true);
this.GridView1.DataSourceID = "SqlDataSource1";

s1.Close();
// Session.RemoveAll();

// Session["name"] = this.Label2.Text;

//   Response.Redirect("Default.aspx?p1=" + this.Label2.Text);

//  Response.Redirect("Default.aspx");

}
else
{

if (this.TextBox2.Text.Trim() != "" && this.TextBox3.Text != "")
{

this.TextBox1.Text = "";

SqlConnection s2 = new SqlConnection("Data Source=JAMMY-PC//SQLEXPRESS;Initial Catalog=talk;User ID=sa;Password=123.com");
s2.Open();

SqlCommand cmd2 = new SqlCommand("insert into talk values('" + this.TextBox3.Text + "','" + this.TextBox2.Text.Trim() + "','" + DateTime.Now.ToString() + "')", s2);
cmd2.ExecuteNonQuery();
this.TextBox2.Text = "";

SqlCommand cmd3 = new SqlCommand("select * from talk", s2);
SqlDataReader r2 = cmd3.ExecuteReader();
while (r2.Read())
{

this.TextBox1.Text = this.TextBox1.Text + "/n" + r2.GetValue(1).ToString() + "  " + r2.GetValue(3).ToString() + "/n说:" + r2.GetValue(2).ToString() + "/r/n";
}
r2.Close();

ScriptManager.RegisterStartupScript(this.Button1, this.GetType(), "alertScript", "b1();", true);
this.GridView1.DataSourceID = "SqlDataSource1";

s2.Close();

}

ScriptManager.RegisterStartupScript(this.Button1, this.GetType(), "alertScript", "b1();", true);
this.GridView1.DataSourceID = "SqlDataSource1";

//Session["name"] = this.TextBox3.Text;
//  Response.Redirect("Default.aspx?p1=" + this.TextBox3.Text);

}

if (this.TextBox3.Text == "")
{
Response.Redirect("Default.aspx?p1=" + this.Label2.Text);

}
else
{
Response.Redirect("Default.aspx?p1=" + this.TextBox3.Text);

}

}

protected void Timer1_Tick(object sender, EventArgs e)
{
try
{
this.Label4.Text = DateTime.Now.ToString();

this.TextBox1.Text = "";

SqlConnection s1 = new SqlConnection("Data Source=JAMMY-PC//SQLEXPRESS;Initial Catalog=talk;User ID=sa;Password=123.com");
s1.Open();

SqlCommand cmd = new SqlCommand("select * from talk", s1);
SqlDataReader r1 = cmd.ExecuteReader();
while (r1.Read())
{
this.TextBox1.Text = this.TextBox1.Text + "/n" + r1.GetValue(1).ToString() + "  " + r1.GetValue(3).ToString() + "/n说:" + r1.GetValue(2).ToString() + "/r/n";

}
r1.Close();

ScriptManager.RegisterStartupScript(this, this.GetType(), "alertScript", "setScroll()", true);

this.GridView1.DataSourceID = "SqlDataSource1";

s1.Close();

// RegisterStartupScript("Startup",   "<script>with(document.all.textbox1){focus();value=value;}<"+"/script>");

//    this.TextBox1.SelectionStart = this.TextBox1.Text.Length;

this.Label4.Text = DateTime.Now.ToString();

}
catch (Exception ex)
{

}
}
protected void Button2_Click(object sender, EventArgs e)
{
if (this.Panel1.Visible == false)
{
this.Panel1.Visible = true;
this.Button2.Text="聊天记录<<";
}
else
{

this.Panel1.Visible = false;
this.Button2.Text = "聊天记录>>";
}
}

protected void Button3_Click(object sender, EventArgs e)
{

SqlConnection s1 = new SqlConnection("Data Source=JAMMY-PC//SQLEXPRESS;Initial Catalog=talk;User ID=sa;Password=123.com");
s1.Open();

SqlCommand cmd1 = new SqlCommand("delete talk", s1);

cmd1.ExecuteNonQuery();
SqlCommand cmd2 = new SqlCommand("dbcc checkident('talk',reseed,0)", s1);
cmd2.ExecuteNonQuery();
//dbcc checkident('test',reseed,0)

}

}


Default 页面

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"%>

<%@ Register assembly="RichTextEditor" namespace="AjaxControls" tagprefix="cc1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>网页在线聊天</title>
<style type="text/css">
#TextArea1
{
height: 241px;
width: 390px;
}
#Button2
{
height: 31px;
width: 61px;
}
</style>

<script language="javascript" type="text/javascript">

// <!CDATA[

function Button2_onclick() {
range=document.all.TextBox1.createTextRange(); //demo为textarea的id
range.collapse(false);
range.moveStart('character',0);
//range.select();

}
function b1() {
range=document.all.TextBox1.createTextRange(); //demo为textarea的id
range.collapse(false);
range.moveStart('character',0);
//range.select();

}

function a1()
{
alert("123");
}
function c1() {
range=document.all.TextArea1.createTextRange(); //demo为textarea的id
range.collapse(false);
range.moveStart('character',0);
//range.select();

}

function setScroll()
{
// document.all.TextBox1.scrollTop = document.all.TextBox1.scrollHeight;
//document.all.TextBox1.scrollTop=document.all.TextBox1.scrollHeight;
//alert(obj.id);

// document.all.TextBox1.scrollTop=document.all.TextBox1.offsetHeight+"px";
document.getElementById('<%=TextBox1.ClientID%>').scrollTop = document.getElementById('<%=TextBox1.ClientID%>').scrollHeight+10000

}

// ]]>

function SubmitKeyClick(button) {

if (event.keyCode == 13) {

event.keyCode = 9;

event.returnValue = false;

document.all[button].click();

}

}

</script>

</head>
<body >
<form id="form1" runat="server" >
<div id="d1">

<br />
 网页在线即时聊天(测试版)<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel4" runat="server">
<ContentTemplate>
当前时间:<asp:Label ID="Label4" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Load" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server" BorderStyle="Outset" Height="233px" style= "overflow:hidden"

TextMode="MultiLine" Width="481px" ReadOnly="True"
Rows="10" BackColor="#FFFFCC" BorderColor="#3399FF"></asp:TextBox>
<br />
<br />
<br />
<asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick">
</asp:Timer>
当前人数:
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" />
</Triggers>
</asp:UpdatePanel>

<br />
当前您的IP:<asp:Label ID="Label2" runat="server" Text="Label" BackColor="#FFFF99"
ForeColor="Red"></asp:Label>

    <asp:Label ID="Label3" runat="server" Text="名称:"></asp:Label>
 <asp:TextBox ID="TextBox3" runat="server" Width="181px"></asp:TextBox>

<br />

</div>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox ID="TextBox2" runat="server" Height="105px" Width="485px"
TextMode="MultiLine" BackColor="#CCFFFF" BorderColor="#FFFFCC"
></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click2" Text="发送"
Width="90px" Height="24px" />
<asp:Button ID="Button2" runat="server" Height="25px" Text="聊天记录>>"
Width="99px" onclick="Button2_Click" />
  
<asp:Label ID="Label5" runat="server" BackColor="#FFFFCC" ForeColor="#FF3300"
Text=" 注:可以使用回车发送消息"></asp:Label>
<br />
</ContentTemplate>
</asp:UpdatePanel>
<br />
<asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional">
<ContentTemplate> <asp:Panel ID="Panel1" runat="server" Visible="False">
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AllowSorting="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"
style="margin-right: 171px" CellPadding="4" ForeColor="#333333"
GridLines="None">
<RowStyle BackColor="#EFF3FB" />
<Columns>
<asp:BoundField DataField="name" HeaderText="名称" SortExpression="name" />
<asp:BoundField DataField="text" HeaderText="记录" SortExpression="text" />
<asp:BoundField DataField="time" HeaderText="时间" SortExpression="time" />
</Columns>
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>

<asp:Button ID="Button3" runat="server" onclick="Button3_Click"
Text="清空聊天内容" Width="152px" />

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:talkConnectionString %>"

SelectCommand="SELECT [name], [text], [time] FROM [talk] ORDER BY [id] DESC"></asp:SqlDataSource>

</asp:Panel>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" />
</Triggers>
</asp:UpdatePanel>
</form>
<p>
 版权所有 <a href="mailto:Jammy@2010">Jammy@2010</a>  ;  </p>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: