知识大全 使用XML为列表控件绑定数据

Posted

篇首语:只有努力攀登顶峰的人,才能把顶峰踩在脚下。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用XML为列表控件绑定数据相关的知识,希望对你有一定的参考价值。

使用XML为列表控件绑定数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  了解使用XML为列表控件绑定数据的各种不同的方法

  介绍    在web开发项目中 我们需要经常写一些代码从数据源读取动态数据到列表控件中 在经典ASP时期 这是一件相对比较困难的任务 例如 我们必须查询数据库 找回 RecordSet 并且在手动创建HTML标签时还要重述 RecordSet

  现在在ASP NET中 你做同样的事情有了更好的办法 此外 除了用数据库作为数据源 你还可以使用各种数据源 比如XML文件 哪一个更好呢?这会在性能 适应性 可靠性 易配置性 安全等方面引起争论 在这里 我不想讨论这些

  这篇文章讨论了几种可选择的办法给列表控件绑定不同类型的数据源(主要是XML文件) 尽管我们使用ListBox  作为例子 但你可以很容易地把这种技术扩展到其他从 System Web UI WebControls ListControl 类继承而来的列表控件 它们包括 CheckBoxList DropDownList 和 RadioButtonList 硬编码列表框    作为开始 让我们回忆一下通常我们是怎样用HTML定义一个列表框 (ListBox) 的 下面展示了一个列表框的原始代码 这是最简单的方法 且费用最少 但是缺少一些弹性来控制列表框的行为

  <select size= id= lstPizzaTopping >

  <option value= supreme >Supreme</option>

  <option value= italianclassic >Italian Classic</option>

  <option value= meatlover >Meat Lover</option>

  </select>

  在ASP NET中 你可以使用列表框得到同样的结果 但是具有更多性能来控制它的行为和属性

  <asp:listbox rows= id= lstPizzaTopping runat= server >

  <asp:listitem value= supreme >Supreme</asp:listitem>

  <asp:listitem value= italianclassic >Italian Classic</asp:listitem>

  <asp:listitem value= meatlover >Meat Lover</asp:listitem>

  </asp:listbox>

  让我们在代码中使用一点手法 除了在列表框中硬编码进去一些项 你可以使用ListItem 对象生成一些项添加到列表框控件中 ListItem 有两个参数 项的文字以及值 如果你没指定第二个参数 那项的值将跟它的文字一样 下面的代码演示了该怎么做

  <script runat= server >

  Sub Page_Load(src as Object e as EventArgs)

  lstPizzaTopping Items Add(new ListItem( Supreme supreme ))

  lstPizzaTopping Items Add(new ListItem( Italian Classic italianclassic ))

  lstPizzaTopping Items Add(new ListItem( Meat Lover meatlover ))

  </script>

  

  

  <asp:listbox rows= id= lstPizzaTopping runat= server />

  列表框绑定数据    事实上 ASP NET允许你把列表框的内容跟对象绑定起来 这个对象可以是一个数组 一个集合对象 一个数据库甚至是一个XML文件 下面的例子演示了怎么把一个字符串数组绑定到列表框控件上 我们将在后面更详细地探究XML数据的绑定

  <script runat= server >

  Sub Page_Load(src as Object e as EventArgs)

  Dim arrPizzaTopping as String() = _

   Supreme Italian Classic Meat Lover

  lstPizzaTopping DataSource = arrPizzaTopping

  lstPizzaTopping DataBind()

  End Sub

  </script>

  

  

  <asp:listbox rows= id= lstPizzaTopping runat= server />

  如果我们给数组添加一个新的元素会怎么样?列表框会反映出结果吗?不会的 除非你再一次使用 DataBind 方法 利用这种数据绑定技术 在什么时候什么地方更新列表框 你拥有完全的控制权

  让我们看看另外一个例子 在ASP NET中用 ArrayList  对象绑定数据 这个 ArrayList 跟VB中的数组有点相似 但是它功能更强 它能支持更多复杂的数据类型 ArrayList d实际上是一个集合 所以我们可以把它作为一个集合 添加一个新项 我们调用 Add 方法并提供对象去 Add 在这种情况下它是一个字符串

  <script runat= server >

  Sub Page_Load(src as Object e as EventArgs)

  Dim arrPizzaTopping as new ArrayList()

  arrPizzaTopping Add( Supreme )

  arrPizzaTopping Add( Italian Classic )

  arrPizzaTopping Add( Meat Lover )

  lstPizzaTopping DataSource = arrPizzaTopping

  lstPizzaTopping DataBind()

  End Sub

  </script>

  

  

  <asp:listbox rows= id= lstPizzaTopping runat= server />

  数据绑定是把脚本跟用户界面分离开来的一个例子(比如HTML代码) 但是像我们上面提到的数据绑定技术 我们只能绑定静态数据(这些数据应该被硬编码进我们的aspx 文件) 如果数据是动态将会怎么样?如果我们想在其他页面重用列表框 又会怎么样?为了解决这些问题 我们需要依赖于额外的数据源 典型的 我们使用数据库把列表框中的内容存储在表中 有很多文章以及讨论了这种技术 举例来说 你可以查阅Scott Mitchell 关于用Access数据库为列表控件绑定数据的文章

  关于数据库的讲了很多 现在我们试着使用一下另一种方法——XML文件 XML文件是一个纯文本文件 所以你可以很容易地用记事本创建和编辑它 下面的代码块是包含提供给列表框控件数据的XML文件的一个例子 它有两个部分 这由注释很清晰地标识出来 第一部分包含了关于 pizza toppings 的列表 第二部分包含了关于 pizza crust 的列表 每一部分有多个条目 在每一条目中又有 <value> 和 <desc> 两个元素 请记住 这个XML文件只是一个例子 你能定义你自己的元素和内容 好像你已经饿了 但是别抱怨我 无论如何 pizza 和编程是非常匹配的

  <?xml version= standalone= yes ?>

  <lookup>

  <! START OF: Topping >

  <topping>

  <value>supreme</value>

  <desc>Supreme</desc>

  </topping>

  <topping>

  <value>italianclassic</value>

  <desc>Italian Classic</desc>

  </topping>

  <topping>

  <value>meatlover</value>

  <desc>Meat Lover</desc>

  </topping>

  <! END OF: Topping >

  <! 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=

  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()

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

cha138/Article/program/ASP/201311/21758

相关参考

知识大全 使用XML为列表控件绑定数据[3]

使用XML为列表控件绑定数据[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  为了把XML文

知识大全 使用XML为列表控件绑定数据[2]

使用XML为列表控件绑定数据[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  让我们看看另外

知识大全 7.2.3 数据源控件和数据绑定控件相配合

   如前两个小节所述ASPNET为处理数据提供两组控件数据源控件和数据绑定控件本节介绍它们是如何相互配合的数据源控件处理后台的数据连接以及编辑排序分页等行为数据绑定控件

知识大全 ASP.NET入门教程 7.4.1 数据绑定选项列表[1]

ASP.NET入门教程7.4.1数据绑定选项列表[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ASP.NET入门教程 7.4.1 数据绑定选项列表[3]

ASP.NET入门教程7.4.1数据绑定选项列表[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ASP.NET入门教程 7.4.1 数据绑定选项列表[2]

ASP.NET入门教程7.4.1数据绑定选项列表[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ASP.NET入门教程 7.4.1 数据绑定选项列表[4]

ASP.NET入门教程7.4.1数据绑定选项列表[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ASP.NET数据绑定控件比较浅析

ASP.NET数据绑定控件比较浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNET数

知识大全 数据控件数据绑定方法

  Datalistgridviewrepeater数据绑定方法    SqlConnectioncon=newSqlConnection();  conConnectionString=server

知识大全 ASP.NET入门教程 7.4 数据绑定控件

ASP.NET入门教程7.4数据绑定控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!