选择显示字体大小

采用xml数据来填充asp表单

本文作者brian schaffner是富士通咨询公司的副主任。他为富士通的技术咨询公司提供架构、设计和开发支持。

在本篇文章里,我们会使用一个简单的web表单,它会列出某个目录下的一些xml文件。然后,我们会从这个目录里选择一个文件,将它发送到另一个web表单里,后者会使用被选中的xml文件来填充某些文本字段。

示例xml
 
我们的示例xml文档包含有一组含有基本信息的元素,如listing a所示:

listing a: sample.xml
<sample>
  <name>john doe</name>
  <address>900 n. michigan ave</address>
  <city>chicago</city>
  <state>il</state>
  <zip>60614</zip>
  <phone>630-555-5555</phone>
</sample>

为了让本文的说明更加有趣,我们会再创建两个含有不同数据的示例文件,如listing b和listing c所示:

listing b: sample2.xml

<sample>
  <name>george w. bush</name>
  <address>1600 pennsylvania ave nw</address>
  <city>washington</city>
  <state>dc</state>
  <zip>20500</zip>
  <phone>202-456-1111</phone>
</sample>

listing c: sample3.xml
<sample>
  <name>bill gates</name>
  <address>1 microsoft way</address>
  <city>redmond</city>
  <state>wa</state>
  <zip>98052</zip>
  <phone>425-882-8080</phone>
</sample>

创建一个叫做c:\xmldocs的目录,并将所有三个示例文件放到这个目录下。

web表单
 
我们会为我们的应用程序创建两个web表单。我们要用第一个表单来选择xml文件,用第二个表单来显示xml数据。

首先要用visual studio .net创建一个新的asp.net web应用程序。然后将最初的表单保存为selectfile.aspx。如果你双击这个表单,代码编辑器就会被打开。

你首先需要把下面这一行加到代码的最前面,才能够将io包添加到你的应用程序里:

usingsystem.io;

然后,找到代码内的page_load()方法。你需要将这个方法编辑成像下面listing d里的代码一样:

listing d: selectfile'spage_load() method
private void page_load(object sender, system.eventargs e) {
  system.io.directoryinfo dir;
  system.io.fileinfo[] files;
  system.io.fileinfofinfo;
  system.collections.ienumeratorfileenum;

  dir = new directoryinfo ("c:\\xmldocs");
  files = dir.getfiles ("*.xml"); 
  fileenum = files.getenumerator();
  response.write("please select the xml file to load: <br><br>\n");

  while (fileenum.movenext()) {
    finfo = (fileinfo) fileenum.current;
    response.write("<a href=\"showdata.aspx?filename=" + finfo.name + "\">" + finfo.name + "</a><br>\n");
  }
}

现在向你的项目里添加一个新的web表单——showdata.aspx。在这个表单里放置六个文本框,并将其命名为:txtname、txtaddress、txtcity、txtstate、txtzip和txtphone。同样的,在表单里创建六个标签,并将其标题栏分别命名为name(姓名)、address(地址)、city(城市)、state(州)、zip(邮政编码)和phone(电话)。

双击showdata表单来启动代码编辑器。你需要编辑showdata表单的page_load()方法,使其看起来就像listing e里的一样:

listing e: showdata'spage_load() method
private void page_load(object sender, system.eventargs e) {
  string filename;
  xmltextreaderxmlreader;

  filename = "c:\\xmldocs\\" + request.params.get("filename");
  xmlreader = new xmltextreader(filename);

  while (xmlreader.read()) {
    if (xmlreader.nodetype == xmlnodetype.element) {
      switch (xmlreader.localname) {
        case "name":
          txtname.text = xmlreader.readstring();
          break;
        case "address":
          txtaddress.text = xmlreader.readstring();
          break;
        case "city":
          txtcity.text = xmlreader.readstring();
          break;
        case "state":
          txtstate.text = xmlreader.readstring();
          break;
        case "zip":
          txtzip.text = xmlreader.readstring();
          break;
        case "phone":
          txtphone.text = xmlreader.readstring();
          break;
      }
    }
  }
}

你还需要把下面这一行加到代码的最前面,才能够将xml包添加到你的应用程序里:

usingsystem.xml;

这段代码在本质上同我们在c#表单例子里所使用的代码相同。其主要的不同之处在于,我们不再利用按钮来调用这段代码,而且我们也不再需要使用openfiledialog控件来寻找xml文件。文件名是由selectfile的web表单所提供的,这段代码在showdata表单被加载的时候被调用。

我们使用xmltextreaders read()方法在xml文档里迭代。随着每次对read()的调用,我们都会处理另一个xml节点。我们只用简单地检查一下,以确保该节点是一个元素,然后就可以使用xml元素节点里的字符串数据来填充我们表格里相应的文本框了。

运行演示程序
一旦你完成了演示表单的编码和编译,你就已经准备好使用它们了。将你的web浏览器指向selectfile表单。当页面被载入的时候,它就应该能够列出我们先前创建的示例文件了。只用简单地点击其中一个文件名,你就会看到数据填充在showdata表单里。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons