欢迎大家光临【无师自通-教程网】您的到来是我们的荣幸。本站提供photoshop教程,ps教程,flash教程,cad教程,网页制作教程,excel教程,asp教程,vb教程,3d教程,c语言教程,html教程,coreldraw教程,dreamweaver教程,java教程,3dmax教程 等各种教程为主题的内容和服务,相信您会在这里找到您所需要的东东。无师自通伴您一生-谢谢您的光临!!
网站地图 设为首页
简繁切换 加入收藏
栏目待定 留言本站
您现在的位置: 无师自通-教程网 >> WEB开发 >> Asp教程 >> 教程正文

  没有公告

[组图]asp.net xml留言本 更多...
asp.net xml留言本


   
    下面我们先来创建用于接受用户输入信息的Web页面-GuestBook.aspx。根据前面所提的基本要求,该Web页面包括了以下几个部分:留言簿标题、"用户名:"标签及输入框、"Email地址:"标签及输入框、"QQ号码:"标签及输入框、"个人主页:"标签及输入框、"留言信息:"标签及输入框、一个"确定"按钮、一个"重置"按钮、一个"查看留言簿"按钮,同时该页面还包括了两个验证按钮,分别用于验证用户名以及Email地址是否为空,若为空,则提醒用户输入。同时,为使留言簿具有良好的用户界面,我运用了表格进行页面布置,这样留言簿中的各个成分就能有条有理,层次分明了。有关该Web页面的详细代码请参考文后附带的源代码,这里就不给出了。页面布置的图示如下:
  
  
  
  图1
  
    完成了该Web页面的布置,我们仅仅是完成了一部分的工作,到此为止我们并没有进行过真正的编码。我想大家对ASP.NET中的代码后置技术肯定是了解或熟悉的,它将Web页面的布置工作和后端的编码工作区分开来,达到了良好的分离效果。下面我们就为该Web页面中的三个按钮分别编写消息相应函数:
  
  private void btnOK_Click(object sender, System.EventArgs e)
  {
  SaveXMLData();
  
  name.Text = "";
  email.Text = "";
  qq.Text = "";
  homepage.Text = "";
  comment.Text = "";
  }
  
  private void btnReset_Click(object sender, System.EventArgs e)
  {
  name.Text = "";
  email.Text = "";
  qq.Text = "";
  homepage.Text = "";
  comment.Text = "";
  }
  
  private void btnView_Click(object sender, System.EventArgs e)
  {
  // 显示所有用户的留言信息
  Response.Redirect( "ViewGuestBook.aspx" );
  }
  
    其中,第一个按钮是最重要的,它能将用户的输入信息存储到XML文件中,调用的方法就是SaveXMLData();而第二个按钮仅仅完成文本框的重置清空工作;第三个按钮的作用是运用另一个Web页面显示所有的用户输入信息。同时,第一个按钮在成功保存信息后也会将浏览器导向到显示所有用户输入信息的页面。

   下面我们来详细分析一下SaveXMLData()方法,其实现如下:
  
  private void SaveXMLData()
  {
  try
  {
  // 创建一个XmlDocument对象,用于载入存储信息的XML文件
  XmlDocument xdoc = new XmlDocument();
  xdoc.Load( Server.MapPath( "guestbook.xml" ));
  
  // 创建一个新的guest节点并将它添加到根节点下
  XmlElement parentNode = xdoc.CreateElement( "guest" );
  xdoc.DocumentElement.PrependChild( parentNode );
  
  // 创建所有用于存储信息的节点
  XmlElement nameNode = xdoc.CreateElement( "name" );
  XmlElement emailNode = xdoc.CreateElement( "email" );
  XmlElement qqNode = xdoc.CreateElement( "qq" );
  XmlElement homepageNode = xdoc.CreateElement( "homepage" );
  XmlElement commentNode = xdoc.CreateElement( "comment" );
  
  // 获取文本信息
  XmlText nameText = xdoc.CreateTextNode( name.Text );
  XmlText emailText = xdoc.CreateTextNode( email.Text );
  XmlText qqText = xdoc.CreateTextNode( qq.Text );
  XmlText homepageText = xdoc.CreateTextNode( homepage.Text );
  XmlText commentText = xdoc.CreateTextNode( comment.Text );
  
  // 将上面创建的各个存储信息的节点添加到guest节点下但并不包含最终的值
  parentNode.AppendChild( nameNode );
  parentNode.AppendChild( emailNode );
  parentNode.AppendChild( qqNode );
  parentNode.AppendChild( homepageNode );
  parentNode.AppendChild( commentNode );
  
  // 将上面获取的文本信息添加到与之相对应的节点中
  nameNode.AppendChild( nameText );
  emailNode.AppendChild( emailText );
  qqNode.AppendChild( qqText );
  homepageNode.AppendChild( homepageText );
  commentNode.AppendChild( commentText );
  
  // 保存存储信息的XML文件
  xdoc.Save( Server.MapPath( "guestbook.xml" ));
  
  // 显示所有用户的留言信息
  Response.Redirect( "ViewGuestBook.ASPx" );
  }
  catch( Exception e ) {}
  }
  
    该方法主要运用了XmlDocument类、XmlElement类以及XmlText类等,这些类都是包含在System.Xml命名空间中的,所以请在代码文件的开头处添加using System.Xml的语句。该方法运用了一个try-catch语句块,在try部分首先通过创建一个XmlDocument对象来载入XML文件,然后创建根节点的儿子-guest节点并在guest节点下添加存储信息所必须的五个子节点。所有这些子节点都是XmlElement对象,它们是通过XmlDocument对象的CreateElement()方法来获取的。同时,XmlDocument对象还通过CreateTextNode()方法来获取文本信息并在后面将其添加到相对应的节点中。在合理的添加guest节点及其子节点以及文本信息后,XmlDocument对象通过Save()方法将用户输入的信息保存到XML文件中。最后,浏览器会导向到显示所有用户输入信息的页面。这样,该Web页面运行的效果如图2所示:
  
  
  
  图2
  
    下面我们来创建用于显示所有用户输入信息的页面-ViewGuestBook.aspx。在该Web页面中,我们要运用到XSLT技术,它能将前面创建的XML文件中的数据以HTML的形式显示出来。由于是运用XSLT技术显示用户输入信息的,所以在设计该Web页面时我们无需添加任何Web控件,只要重载该Web页面的Load()方法即可。
  
  private void Page_Load(object sender, System.EventArgs e)
  {
  // 创建一个XmlDocument对象以载入存储信息的XML文件
  XmlDocument xdoc = new XmlDocument();
  xdoc.Load( Server.MapPath( "guestbook.xml" ));
  
  // 创建一个XslTransform对象并导入XSL文件
  XslTransform xslt = new XslTransform();
  xslt.Load( Server.MapPath( "guestbook.xsl" ));
  
  string xmlQuery = "//guestbook";
  XmlNodeList nodeList = xdoc.DocumentElement.SelectNodes( xmlQuery );
  
  MemoryStream ms = new MemoryStream();
  xslt.Transform( xdoc, null, ms );
  ms.Seek( 0, SeekOrigin.Begin );
  
  StreamReader sr = new StreamReader( ms );
  
  // 显示输出结果
  Response.Write( sr.ReadToEnd() );
  }
  
    该方法首先创建一个XmlDocument对象用于载入前面创建的XML数据文件,之后创建一个XslTransform对象并导入相应的XSL文件。通过该XSL文件中的内容它能将原来的XML文件中的数据格式化为HTML的形式并显示在浏览器中。因为其中运用到了XSLT转换,所以我们还得在代码文件的开头处添加using System.Xml.Xsl的语句。
  
    下面便是XSL文件的源代码,其中最重要的部分是<xsl:template match="name">……</xsl:template>一块。
  
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="/">
  <table border="1" style="border-collapse: collapse" bordercolor="Teal" align="center" width="505" height="34">
  <tr>
  <td valign="middle" align="center" bgcolor="Teal" colspan="2" width="505" height="85">
  <font style="color:White;background-color:Teal;font-family:华文行楷;font-size:X-Large;font-weight:bold;">欢迎访问"令狐冲"的留言簿!</font>
  </td>
  </tr>
  <tr><td width="505" height="26" align="left" colspan="2"></td></tr>
  <xsl:for-each select="//guest">
  <xsl:apply-templates select="name"/>
  </xsl:for-each>
  <tr>
  <td valign="middle" align="center" colspan="2" width="505">
  <font>
  本留言簿由<a href="mailto:0024108@fudan.edu.cn">王凯明</a>开发! </font>
  </td>
  </tr>
  </table>
  </xsl:template>
  <xsl:template match="name">
  <tr>
  <td width="95" height="26" align="right">
  <font>用户名:</font>
  </td>
  <td width="400" height="26" valign="middle" align="left">
  <font><xsl:value-of select='.'/></font>
  </td>
  </tr>
  <tr>
  <td width="95" height="26" align="right" bgcolor="e0e0e0">
  <font>Email地址:</font>
  </td>
  <td width="400" height="26" valign="middle" align="left" bgcolor="#e0e0e0">
  <font><a HREF="mailto:{../email}"><xsl:apply-templates select="../email"/></a></font>
  </td>
  </tr>
  <tr>
  <td width="95" height="26" align="right">
  <font>QQ号码:</font>
  </td>
  <td width="400" height="26" valign="middle" align="left">
  <font><xsl:apply-templates select="../qq"/></font>
  </td>
  </tr>
  <tr>
  <td width="95" height="26" align="right" bgcolor="#e0e0e0">
  <font>个人主页:</font>
  </td>
  <td width="400" height="26" valign="middle" align="left" bgcolor="#e0e0e0">
  <font><a HREF="http://{../homepage}" target="_blank"><xsl:apply-templates select="../homepage"/></a></font>
  </td>
  </tr>
  <tr>
  <td width="95" height="26" valign="top" align="right">
  <font>留言信息:</font>
  </td>
  <td width="400" height="26" valign="top" align="left">
  <font><xsl:apply-templates select="../comment"/></font>
  </td>
  </tr>
  <tr><td width="505" height="26" align="left" colspan="2"></td></tr>
  </xsl:template>
  </xsl:stylesheet>

上一页  [1] [2] [3] [4] 下一页

教程录入:admin    责任编辑:admin 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
     
     
     

    asp连接mysql数据库

    asp连接mysql数据库-2

    frontpage2000教程---制作主页
    免责声明!本站资料大部分来自于互联网,其版权归原作者或其他合法者所有.如内容涉及或侵犯了您的权益,请通知本人,我将尽快处理!.欢迎您的光临。
    辽ICP备07003958号
    无师自通,伴你一生-教程网