|
列表类型的服务器控件(例如DropDownList、ListBox和HTMLSelect)把集合作为数据源。下面的例子演示如何绑定到通用语言运行时集合类型。这些控件只能绑定到支持Ienumerable、Icollection或IlistSource接口的集合。更为常见的是,它可以绑定到ArrayList、Hashtable、DataView和DataReader。下面的例子演示了如何绑定到ArrayList。
Sub Page_Load(sender As Object, e As EventArgs) If Not IsPostBack Then Dim values as ArrayList= new ArrayList() values.Add ("IN") values.Add ("KS") values.Add ("MD") values.Add ("MI") values.Add ("OR") values.Add ("TN")
DropDown1.DataSource = values DropDown1.DataBind End If End Sub | 下面的例子演示了如何绑定到DataView。请注意DataView类是在System.Data名字空间中定义的。
Sub Page_Load(sender As Object, e As EventArgs) If Not IsPostBack Then Dim dt As DataTable Dim dr As DataRow Dim i As Integer
'建立DataTable dt = New DataTable dt.Columns.Add(New DataColumn("IntegerValue", GetType(Integer))) dt.Columns.Add(New DataColumn("StringValue", GetType(String))) dt.Columns.Add(New DataColumn("DateTimeValue", GetType(DateTime))) dt.Columns.Add(New DataColumn("BooleanValue", GetType(Boolean)))
'填充一些数据
For i = 1 To 9 dr = dt.NewRow() dr(0) = i dr(1) = "Item " + i.ToString() dr(2) = DateTime.Now.ToShortTimeString If (i Mod 2 <> 0) Then dr(3) = True Else dr(3) = False End If '把数据行添加到表 dt.Rows.Add(dr) Next
GridView1.DataSource = New DataView(dt) GridView1.DataBind() End If End Sub | 下面的例子演示了如何绑定到Hashtable。
Sub Page_Load(sender As Object, e As EventArgs) If Not IsPostBack Then Dim h As Hashtable = new Hashtable() h.Add ("key1", "value1") h.Add ("key2", "value2") h.Add ("key3", "value3")
MyDataList.DataSource = h MyDataList.DataBind End If End Sub | 通常情况下,你可能希望绑定到页面或控件之前先处理数据。下面的例子演示了如何绑定到表达式和方法的返回值。
Sub Page_Load(sender As Object, e As EventArgs) If Not IsPostBack Then Dim values as ArrayList= new ArrayList()
values.Add (0) values.Add (1) values.Add (2) values.Add (3) values.Add (4) values.Add (5) values.Add (6)
DataList1.DataSource = values DataList1.DataBind End If End Sub
Function EvenOrOdd(number As Integer) As String If (number Mod 2 <> 0) Then Return "Odd" Else Return "Even" End If End Function
<asp:DataList id="DataList1" ……> <ItemTemplate> Number Value: <%# Container.DataItem %> Even/Odd: <%# EvenOrOdd(Container.DataItem) %> </ItemTemplate> </asp:DataList> |
|