快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

采用XML数据来填充ASP表单

在本篇文章里,我们会使用一个简朴的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表单里。
返回类别: 教程
上一教程: REQUEST废话连篇
下一教程: 用ASPMAIL组件实现E_MAIL自动反馈

您可以阅读与"采用XML数据来填充ASP表单"相关的教程:
· ASP取动态表单中数据并写入XML文件,用XSL显示
· 将HTML表单数据存储为XML格式
· ASP操作XML数据小结
· 将HTML表单数据存储为XML格式 - 3
· 利用ASP发送和接收XML数据的处理方式
    微笑服务 优质保证 索取样品