热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

采用XML数据来填充ASP表单

在本篇文章里,我们会应用一个简略的Web表单,它会列出某个目录下的一些XML文件。然后,我们会从这个目录里选择一个文件,将它发送到另一个Web表单里,后者会应用被选中的XML文件

在本篇文章里,我们会应用一个简略的Web表单,它会列出某个目录下的一些XML文件。然后,我们会从这个目录里选择一个文件,将它发送到另一个Web表单里,后

者会应用被选中的XML文件来填充某些文本字段。

示例XML

我们的示例XML文档包含有一组含有基础信息的元素,如

Listing A所示:

以下为引用的内容:
Listing A: sample.xml

John Doe

900 N. Michigan Ave

Chicago
IL
60614
630-555-5555

为了让本文的阐明更加有趣,我们会再创立两个含有不同数据的示例文件,如Listing B和Listing C所示:

以下为引用的内容:
Listing B: sample2.xml


George W. Bush

1600 Pennsylvania Ave NW

Washington
DC
20500
202-456-1111

Listing C: sample3.xml

Bill Gates

1 Microsoft Way

Redmond
WA
98052
425-882-8080

创立一个叫做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:

\n");

while (fileEnum.MoveNext()) {
finfo = (FileInfo) fileEnum.Current;
Response.Write("" finfo.Name "
\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表单里。




推荐阅读
  • SQLmap自动化注入工具命令详解(第28-29天 实战演练)
    SQL注入工具如SQLMap等在网络安全测试中广泛应用。SQLMap是一款开源的自动化SQL注入工具,支持12种不同的数据库,具体支持的数据库类型可在其插件目录中查看。作为当前最强大的注入工具之一,SQLMap在实际应用中具有极高的效率和准确性。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • 为了在Fragment中直接调用Activity的方法,可以通过定义一个接口并让Activity实现该接口来实现。具体步骤包括:首先在Fragment中声明一个接口,并在Activity中实现该接口。接着,在Fragment中通过类型转换检查Activity是否实现了该接口,如果实现了则调用相应的方法。这种方法不仅提高了代码的解耦性,还增强了模块间的通信效率。此外,还可以通过ViewModel或LiveData等现代Android架构组件进一步优化这一过程,以实现更加高效和可靠的通信机制。 ... [详细]
  • 通过自定义 `TextView`,实现了在用户点击或焦点变化时动态调整字体颜色的效果。该方法利用了 `ColorStateList` 和 `Selector` 资源文件,确保了界面交互的流畅性和视觉效果的提升。具体实现中,通过重写 `onTouchEvent` 和 `onFocusChanged` 方法,精确控制了颜色变化的时机和状态。此外,还对性能进行了优化,确保在高频率操作下依然保持高效响应。 ... [详细]
  • 在运行时动态获取Entity Framework中的ObjectSet可以通过反射机制实现。这种方法允许开发者在应用程序运行期间根据需要加载不同的实体集合,从而提高代码的灵活性和可扩展性。通过使用`DbContext`类的`Set`方法,结合类型信息,可以轻松地实现这一目标。此外,还可以利用`Type`对象和泛型方法来进一步增强动态性,确保在处理多种实体类型时更加高效和安全。 ... [详细]
  • 解决基于XML配置的MyBatis在Spring整合中出现“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”问题的方法
    在将Spring与MyBatis进行整合时,作者遇到了“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”的问题。该问题主要出现在使用XML文件配置DAO层的情况下,而注解方式配置则未出现类似问题。作者详细分析了两个配置文件之间的差异,并最终找到了解决方案。本文将详细介绍问题的原因及解决方法,帮助读者避免类似问题的发生。 ... [详细]
  • 本文深入解析了 Apache 配置文件 `httpd.conf` 和 `.htaccess` 的优化方法,探讨了如何通过合理配置提升服务器性能和安全性。文章详细介绍了这两个文件的关键参数及其作用,并提供了实际应用中的最佳实践,帮助读者更好地理解和运用 Apache 配置。 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • 本文探讨了在Android应用中实现动态滚动文本显示控件的优化方法。通过详细分析焦点管理机制,特别是通过设置返回值为`true`来确保焦点不会被其他控件抢占,从而提升滚动文本的流畅性和用户体验。具体实现中,对`MarqueeText.java`进行了代码层面的优化,增强了控件的稳定性和兼容性。 ... [详细]
  • 从Google Jam落选后,意外收获了一颗“桔子”,重新整理行囊再出发 ... [详细]
  • C#编程指南:实现列表与WPF数据网格的高效绑定方法 ... [详细]
  • 深入解析Gradle中的Project核心组件
    在Gradle构建系统中,`Project` 是一个核心组件,扮演着至关重要的角色。通过使用 `./gradlew projects` 命令,可以清晰地列出当前项目结构中包含的所有子项目,这有助于开发者更好地理解和管理复杂的多模块项目。此外,`Project` 对象还提供了丰富的配置选项和生命周期管理功能,使得构建过程更加灵活高效。 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 题目描述:小K不幸被LL邪教洗脑,洗脑程度之深使他决定彻底脱离这个邪教。在最终离开前,他计划再进行一次亚瑟王游戏。作为最后一战,他希望这次游戏能够尽善尽美。众所周知,亚瑟王游戏的结果很大程度上取决于运气,但通过合理的策略和算法优化,可以提高获胜的概率。本文将详细解析洛谷P3239 [HNOI2015] 亚瑟王问题,并提供具体的算法实现方法,帮助读者更好地理解和应用相关技术。 ... [详细]
  • 在Spring框架中,基于Schema的异常通知与环绕通知的实现方法具有重要的实践价值。首先,对于异常通知,需要创建一个实现ThrowsAdvice接口的通知类。尽管ThrowsAdvice接口本身不包含任何方法,但开发者需自定义方法来处理异常情况。此外,环绕通知则通过实现MethodInterceptor接口来实现,允许在方法调用前后执行特定逻辑,从而增强功能或进行必要的控制。这两种通知机制的结合使用,能够有效提升应用程序的健壮性和灵活性。 ... [详细]
author-avatar
陈俊英围脖_687
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有