|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般本文作者BrianSchaffner是富士通征询公司的副主任。他为富士通的手艺征询公司供应架构、计划和开辟撑持。
在本篇文章里,我们会利用一个复杂的Web表单,它会列出某个目次下的一些XML文件。然后,我们会从这个目次里选择一个文件,将它发送到另外一个Web表单里,后者会利用被选中的XML文件来添补某些文本字段。
示例XML
我们的示例XML文档包括有一组含有基础信息的元素,如ListingA所示:
ListingA:sample.xml
<Sample>
<Name>JohnDoe</Name>
<Address>900N.MichiganAve</Address>
<City>Chicago</City>
<State>IL</State>
<Zip>60614</Zip>
<Phone>630-555-5555</Phone>
</Sample>
为了让本文的申明加倍风趣,我们会再创立两个含有分歧数据的示例文件,如ListingB和ListingC所示:
ListingB:sample2.xml
<Sample>
<Name>GeorgeW.Bush</Name>
<Address>1600PennsylvaniaAveNW</Address>
<City>Washington</City>
<State>DC</State>
<Zip>20500</Zip>
<Phone>202-456-1111</Phone>
</Sample>
ListingC:sample3.xml
<Sample>
<Name>BillGates</Name>
<Address>1MicrosoftWay</Address>
<City>Redmond</City>
<State>WA</State>
<Zip>98052</Zip>
<Phone>425-882-8080</Phone>
</Sample>
创立一个叫做C:xmldocs的目次,并将一切三个示例文件放到这个目次下。
Web表单
我们会为我们的使用程序创立两个Web表单。我们要用第一个表单来选择XML文件,用第二个表单来显现XML数据。
起首要用VisualStudio.NET创立一个新的ASP.NETWeb使用程序。然后将最后的表单保留为SelectFile.aspx。假如你双击这个表单,代码编纂器就会被翻开。
你起首必要把上面这一行加到代码的最后面,才干够将IO包增加到你的使用程序里:
usingSystem.IO;
然后,找到代码内的Page_Load()办法。你必要将这个办法编纂成像上面ListingD里的代码一样:
ListingD:SelectFilesPage_Load()method
privatevoidPage_Load(objectsender,System.EventArgse){
System.IO.DirectoryInfodir;
System.IO.FileInfo[]files;
System.IO.FileInfofinfo;
System.Collections.IEnumeratorfileEnum;
dir=newDirectoryInfo("C:xmldocs");
files=dir.GetFiles("*.xml");
fileEnum=files.GetEnumerator();
Response.Write("PleaseselecttheXMLfiletoload:<br><br>
");
while(fileEnum.MoveNext()){
finfo=(FileInfo)fileEnum.Current;
Response.Write("<ahref="ShowData.aspx?filename="+finfo.Name+"">"+finfo.Name+"</a><br>
");
}
}
如今向你的项目里增加一个新的Web表单――ShowData.aspx。在这个表单里安排六个文本框,并将其定名为:txtName、txtAddress、txtCity、txtState、txtZip和txtPhone。一样的,在表单里创立六个标签,并将其题目栏分离定名为Name(姓名)、Address(地点)、City(乡村)、State(州)、Zip(邮政编码)和Phone(德律风)。
双击ShowData表单来启动代码编纂器。你必要编纂ShowData表单的Page_Load()办法,使其看起来就像ListingE里的一样:
ListingE:ShowDatasPage_Load()method
privatevoidPage_Load(objectsender,System.EventArgse){
stringfilename;
XmlTextReaderxmlReader;
filename="C:xmldocs"+Request.Params.Get("filename");
xmlReader=newXmlTextReader(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表单被加载的时分被挪用。
我们利用XmlTextReadersRead()办法在XML文档里迭代。跟着每次对Read()的挪用,我们城市处置另外一个XML节点。我们只用复杂地反省一下,以确保该节点是一个元素,然后就能够利用XML元素节点里的字符串数据来添补我们表格里响应的文本框了。
运转演示程序
一旦你完成了演示表单的编码和编译,你就已筹办好利用它们了。将你的Web扫瞄器指向SelectFile表单。当页面被载进的时分,它就应当可以列出我们先前创立的示例文件了。只用复杂地址击个中一个文件名,你就会看到数据添补在ShowData表单里。
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。 |
|