首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> XMLWeb >> 正文

使用XML为列表控件绑定数据

<!-- START OF: Crust -->

  <crust>

    <value>original</value>

    <desc>Original Crust</desc>

  </crust>

  <crust>

    <value>handstretched</value>

    <desc>Hand-Stretched Crust</desc>

  </crust>

  <crust>

    <value>pan</value>

    <desc>Pan Crust</desc>

  </crust>

<!-- END OF: Crust -->

</lookup>

   现在开始变魔术了。在这个XML文件中没有什么特别的,除非你把它加载到ADO.NET的DataSet中。ADO.NET 强有力地支持XML,它可以在XML文件上建立一个关系信息。举各例子,提供前面提到的那个XML文件,ADO.NET将自动创建一个名为lookup的DataSet,它包含两张表:tooping和crust。表tooping有两列(value和desc)三行。同样的,表crust也有(value和desc)三行。ADO.NET是通过模式来读和构造这些表的。下面的图形象的表示了DataSet  和它的 DataTable。

    为了把XML文家加载到DataSet 中,你要使用下面的代码。第一行创建了一个新的 DataSet 实例。 第二行调用了ReadXml 方法并把XML文件的完整路径传递过去。我们使用 Server.MapPath 把文件的虚拟路径转换成物理路径。

Dim myDataSet as DataSet = New DataSet

myDataSet.ReadXml(Server.MapPath("lookup.xml"))

   把表绑定到列表框是简单的。我们仅仅设置一下列表框的DataSource 和 DataMember 属性,使其指向特定的表,然后调用DataBind 方法就可以了。别忘了设置 DataTextField 和 DataValueField 属性,它们显示哪一列是作为值来使用,哪一列是作为文本来使用,因为ASP.NET是不能自动决定的!

<script runat="server">

Sub Page_Load(src as Object, e as EventArgs)

  ...

  ...

  lstPizzaTopping.DataSource = myDataSet

  lstPizzaTopping.DataMember = "topping"

  lstPizzaTopping.DataBind()

End Sub

</script>

...

...

<asp:listbox rows="1"

            id="lstPizzaTopping"

             datatextfield="desc"

             datavaluefield="value"

             runat="server" />


在列表框中排序
    有时候,你想要顺序的排列你的项。下面的代码演示了这种情况。第一行创建了一个表 topping的缺省视图,名为myDataView 的实例。第二行把sort 属性设置为desc ASC,让desc列中的数据升序排列。下一行,我们把列表框的 DataSource属性设置为 myDatView,然后调用 DataBind方法有效地传递列表框的内容。

Dim myDataView as DataView = myDataSet.Tables("topping").DefaultView

myDataView.Sort = "desc ASC"

lstPizzaTopping.DataSource = myDataView

lstPizzaTopping.DataBind()


性能问题
    因为数据绑定是一个损耗资源的过程,所以你应该只在你需要的时候绑定列表控件。你应该在列表控件的内容是动态时,或者在要故意重用列表控件时绑定数据。后者比如同样一个列表框在多个页面显示。当你需要改变这些列表框的内容时,你会节省很多时间,因为你不需要一个个去修改。如果没有一个原因适合你,为了避免不必要的开支,你可以硬编码列表控件的内容。

    在列表框中排列项也是需要耗费一定的资源。如果你想要列表框在任何地方任何时间都是排列号的,考虑用排列好的顺序编写XML文件,而不是在编程时排列列表框中的项。
结论
    这篇文章介绍了在web页面上处理列表控件的各种方式。它从简单易懂的硬编码技术开始,使用 array、ArrayList 绑定数据,最后使用XML来绑定数据。用XML绑定数据是一种你可以考虑代替数据库的数据绑定方法。它很容易实现,而且能避免SQL数据库给企业带来的高额费用。

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

【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·WEB程序开发--ASP.NET和PHP、JSP究竟学哪个?
 ·五步带你入门XML
 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航