📄 sendnews.aspx
字号:
<%@ language="C#" runat=server EnableSessionState="ReadOnly"%>
<%@ import namespace="System.Xml" %>
<script language="C#" runat="server">
//Page_Load在页面被刷新时用于动态产生聊天对象下拉列表
//因为为用户提供聊天对象的下拉列表不能使用代码段产生,
//所以在Page_Load方法中产生
void Page_Load(Object sender,EventArgs E)
{
try{
///创建访问XML文档的XmlDocument对象
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(Server.MapPath("/chatbase/onlineuser.xml"));
XmlNode root=xmldoc.DocumentElement;
int i=root.ChildNodes.Count;
int j;
Object name=Session["UserName"];
String userName=name.ToString();
String namestr;
if(!IsPostBack)
{
//产生下拉列表
ArrayList myList = new ArrayList();
myList.Add ("大家");
for(j=0;j<i;j++)
{
namestr=root.ChildNodes[j].FirstChild.InnerText;
if(namestr!=userName)
{ myList.Add (namestr);}
}
sendto.DataSource = myList;
sendto.DataBind();
}
}catch(Exception e)
{
Response.Write("意外掉线或是长时间不发言被赶出聊天室");
return;
}
}
//send_news在用户单击“发言”按钮时调用。
//将发送的信息保存到chatnews.xml文件中
void send_news(Object sender,EventArgs E)
{
try{
//检验用户是否输入发言,避免发送空的发言
if(news.Text=="")
{
return;
}
//将用户的消息保存到chatnews.xml
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(Server.MapPath("/chatbase/chatnews.xml"));
XmlNode root=xmldoc.DocumentElement;
//聊天信息保存在“在线信息”元素中
//“在线信息”元素包括“发送者”、“接收者”、“表情”
//“悄悄话”、“颜色”和“消息”等子元素
//创建新的“在线信息”元素
XmlNode newElem=xmldoc.CreateElement("在线信息");
//创建“发送者”子元素
Object name=Session["UserName"];
String userName=name.ToString();
XmlNode subElem=xmldoc.CreateElement("发送者");
subElem.InnerText=userName;
//将“发送者”子元素添加到“在线信息”元素中
newElem.AppendChild(subElem);
//创建“接收者”子元素
subElem=xmldoc.CreateElement("接收者");
subElem.InnerText=sendto.SelectedItem.Value;
//将“接收者”子元素添加到“在线信息”元素中
newElem.AppendChild(subElem);
//创建“表情”子元素
subElem=xmldoc.CreateElement("表情");
subElem.InnerText=face.SelectedItem.Value;
//将“表情”子元素添加到“在线信息”元素中
newElem.AppendChild(subElem);
//创建“悄悄话”子元素
subElem=xmldoc.CreateElement("悄悄话");
if(onlyone.Checked)
{
subElem.InnerText="True";
}else{
subElem.InnerText="False";
}
//将“悄悄话”子元素添加到“在线信息”元素中
newElem.AppendChild(subElem);
//创建“颜色”子元素
subElem=xmldoc.CreateElement("颜色");
subElem.InnerText=color.SelectedItem.Value;
//将“颜色”子元素添加到“在线信息”元素中
newElem.AppendChild(subElem);
//创建“消息”子元素
subElem=xmldoc.CreateElement("消息");
subElem.InnerText=news.Text;
//将“消息”子元素添加到“在线信息”元素中
newElem.AppendChild(subElem);
//将新建的“在线信息”元素添加到聊天信息文件chatnews.xml前面
root.InsertBefore(newElem,root.FirstChild);
xmldoc.Save(Server.MapPath("/chatbase/chatnews.xml"));
//修改用户最新在线时间
xmldoc.Load(Server.MapPath("/chatbase/onlineuser.xml"));
XmlNode online_node=xmldoc.SelectSingleNode("//论坛成员[昵称='"+userName+"']");
//获得当前时间
System.DateTime currentTime=new System.DateTime();
currentTime=System.DateTime.Now;
//设置“最新时间”元素的值
int minute=currentTime.Minute;
String str=minute.ToString();
online_node.ChildNodes[1].InnerText=str;
xmldoc.Save(Server.MapPath("/chatbase/onlineuser.xml"));
}catch(Exception e)
{
Response.Write("意外掉线或是长时间不发言被赶出聊天室");
return;
}
}
//log_out在用户单击“离开论坛”按钮时被调用
//用于从onlineuser.xml中删除当前用户
void log_out(Object sender,EventArgs E)
{
try{
XmlDocument xmldoc= new XmlDocument();
xmldoc.Load(Server.MapPath("/chatbase/onlineuser.xml"));
//从在线用户中删除当前用户
XmlNode root=xmldoc.DocumentElement;
XmlNode node;
Object sname=Session["UserName"];
String userName=sname.ToString();
node=root.SelectSingleNode("//论坛成员[昵称='"+userName+"']");
int last,now;
root.RemoveChild(node);
xmldoc.Save(Server.MapPath("/chatbase/onlineuser.xml"));
//添加管理员的欢迎信息到聊天信息文件chatnews.xml中
xmldoc.Load(Server.MapPath("/chatbase/chatnews.xml"));
root=xmldoc.DocumentElement;
//聊天信息保存在“在线信息”元素中
//“在线信息”元素包括“发送者”、“接收者”、“表情”
//“悄悄话”、“颜色”和“消息”等子元素
//创建新的“在线信息”元素
XmlNode newElem=xmldoc.CreateElement("在线信息");
//创建“发送者”子元素
XmlNode subElem=xmldoc.CreateElement("发送者");
subElem.InnerText="管理员";
//将“发送者”子元素添加到“在线信息”元素中
newElem.AppendChild(subElem);
//创建“接收者”子元素
subElem=xmldoc.CreateElement("接收者");
subElem.InnerText="大家";
//将“接收者”子元素添加到“在线信息”元素中
newElem.AppendChild(subElem);
//创建“表情”子元素
subElem=xmldoc.CreateElement("表情");
subElem.InnerText="";
//将“表情”子元素添加到“在线信息”元素中
newElem.AppendChild(subElem);
//创建“悄悄话”子元素
subElem=xmldoc.CreateElement("悄悄话");
subElem.InnerText="False";
//将“悄悄话”子元素添加到“在线信息”元素中
newElem.AppendChild(subElem);
//创建“颜色”子元素
subElem=xmldoc.CreateElement("颜色");
subElem.InnerText="";
//将“颜色”子元素添加到“在线信息”元素中
newElem.AppendChild(subElem);
//创建“消息”子元素
subElem=xmldoc.CreateElement("消息");
subElem.InnerText=userName+"退出论坛";
//将“消息”子元素添加到“在线信息”元素中
newElem.AppendChild(subElem);
//将新建的“在线信息”元素添加到聊天信息文件chatnews.xml前面
root.InsertBefore(newElem,root.FirstChild);
xmldoc.Save(Server.MapPath("/chatbase/chatnews.xml"));
Session.RemoveAll();
Response.Write("<center>欢迎***"+userName+"***再次光临</center>");
}catch(Exception e)
{
Response.Write("意外掉线或已经离开聊天室");
return;
}
}
</script>
<html>
<head>
<% Response.AddHeader("Refresh","60"); %>
</head>
<body bgcolor="#CCCC99">
<form id="form1" method="post" runat="server">
<table width="100%">
<tr>
<td align="center">
<table border="0" cellspacing="3">
<tr>
<td align="center">
<asp:TextBox ID="news" Height="21px" Width="400px" Runat="server" />
</td>
<td>
<asp:button ID="button1" Text="发言" OnClick="send_news" Runat="server" />
</td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="3">
<tr>
<td align="left">
喜欢的色彩
</td>
<td width="57">
<asp:DropDownList ID="color" Runat="server">
<asp:ListItem Value="#008888">默认</asp:ListItem>
<asp:ListItem Value="#ff0000">大红</asp:ListItem>
<asp:ListItem Value="#ff00ff">紫红</asp:ListItem>
<asp:ListItem Value="#ff0088">玫瑰</asp:ListItem>
<asp:ListItem Value="#ff8800">金黄</asp:ListItem>
<asp:ListItem Value="#ccaa00">土黄</asp:ListItem>
<asp:ListItem Value="#888888">灰色</asp:ListItem>
<asp:ListItem Value="#8800ff">兰紫</asp:ListItem>
<asp:ListItem Value="#aa00cc">紫色</asp:ListItem>
<asp:ListItem Value="#8888ff">淡紫</asp:ListItem>
<asp:ListItem Value="#008800">橄榄</asp:ListItem>
</asp:DropDownList>
</td>
<td>
对象
</td>
<td width="82">
<asp:DropDownList ID="sendto" Runat="server"></asp:DropDownList>
</td>
<td width="50">
悄悄话
</td>
<td width="24">
<asp:CheckBox ID="onlyone" Checked="False" Runat="server" />
</td>
<td>
表情
</td>
<td width="88">
<asp:DropDownList ID="face" Runat="server">
<asp:ListItem Value="微笑着">微笑</asp:ListItem>
<asp:ListItem Value="红着脸">脸红</asp:ListItem>
<asp:ListItem Value="温柔地">温柔</asp:ListItem>
<asp:ListItem Value="得意地">得意</asp:ListItem>
<asp:ListItem Value="大笑着">大笑</asp:ListItem>
<asp:ListItem Value="神秘地">神秘</asp:ListItem>
<asp:ListItem Value="嘟着嘴">嘟嘴</asp:ListItem>
<asp:ListItem Value="辛灾乐祸地">辛灾乐祸</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
</table>
</td>
<td align="center" valign="middle" width="20%">
<asp:Button ID="button2" Text="离开论坛" OnClick="log_out" Runat="server" />
</td>
</tr>
<tr>
</tr>
</table>
</form>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -