让我们看看另外一个例子在ASPNET中用 ArrayList 对象绑定数据这个 ArrayList 跟VB中的数组有点相似但是它功能更强它能支持更多复杂的数据类型ArrayList d实际上是一个集合所以我们可以把它作为一个集合添加一个新项我们调用 Add 方法并提供对象去 Add在这种情况下它是一个字符串
<script runat=server>
Sub Page_Load(src as Object e as EventArgs)
Dim arrPizzaTopping as new ArrayList()
arrPizzaToppingAdd(Supreme)
arrPizzaToppingAdd(Italian Classic)
arrPizzaToppingAdd(Meat Lover)
lstPizzaToppingDataSource = arrPizzaTopping
lstPizzaToppingDataBind()
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>HandStretched Crust</desc>
</crust>
<crust>
<value>pan</value>
<desc>Pan Crust</desc>
</crust>
<! END OF: Crust >
</lookup>
现在开始变魔术了在这个XML文件中没有什么特别的除非你把它加载到ADONET的DataSet中ADONET 强有力地支持XML它可以在XML文件上建立一个关系信息举各例子提供前面提到的那个XML文件ADONET将自动创建一个名为lookup的DataSet它包含两张表tooping和crust表tooping有两列(value和desc)三行同样的表crust也有(value和desc)三行ADONET是通过模式来读和构造这些表的下面的图形象的表示了DataSet 和它的 DataTable
[] [] []