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>
相关文章推荐
- 仿Live800,53kf,aspqq等,源码,原码,在线客服系统,提示来源地址,asp.net免费开源控件,即时聊天,PowerTalkBox
- 在线聊天.NET源码 即时
- 在线即时通讯工具的网页即时聊天的html代码
- asp.net在线QQ客服聊天
- tomcat websocket 实现网页在线即时聊天
- 使用asp.net与长连接技术制作网页聊天工具(初步)
- 即时聊天,免费开源asp.net,源码,原码 Web控件PowerTalkBox多客服,客服端带来人提示,客户端带有默认问候示例
- ASP.NET 简易网页聊天
- asp.net导步处理实战之类似QQ的简易网页聊天
- tomcat websocket 实现网页在线即时聊天
- ASP.NET性能优化之让浏览器缓存动态网页的方法
- [ASP.NET学习笔记之十]ASP.NET实现在服务器端控制网页
- asp.net(c#)网页跳转七种方法小结
- ASP.NET重定向_第三篇_调用 ASP.NET 网页的方式
- 【C#】ASP.NET网页中添加单点登录功能
- 开发ASP.NET MVC 在线录音录像(音视频录制并上传)
- ASP.NET 抓取网页内容 (转载)
- ASP.NET+AJAX解决网页打开等待问题
- ASP.NET 添加 AJAX 和客户端功能_第二篇_2.1_ASP.NET 网页中的客户端脚本
- JS asp php .net 判断网页点击来源