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

📄 sendnews.aspx

📁 关于XML和网页配合使用的好书
💻 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" />
									&nbsp;&nbsp;
								</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 + -