当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  ASP.NET 2.0高级数据处理之数据绑定2

 ASP.NET 2.0高级数据处理之数据绑定2

点击次数:25 次 发布日期:2008-11-26 11:15:31 作者:源代码网
源代码网推荐      下面的例子演示如何绑定到另一个控件的属性:
源代码网推荐  
源代码网推荐  <asp:DropDownList id="StateList" runat="server">
源代码网推荐  <asp:ListItem>CA</asp:ListItem>
源代码网推荐  ……
源代码网推荐  </asp:DropDownList>
源代码网推荐  
源代码网推荐  <asp:button ID="Button1" Text="Submit" OnClick="SubmitBtn_Click" runat="server"/>
源代码网推荐  Selected State: <asp:label ID="Label1" text="<%# StateList.SelectedItem.Text %>" runat="server"/>
源代码网推荐    列表类型的服务器控件(例如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>
源代码网推荐    ASP.NET页面框架组件提供了一个静态的方法,它估算延迟绑定(late-bound)的数据绑定表达式并可以选择把其结果格式化为字符串。在这种情况下,DataBinder.Eval很方便,因为它消除了开发者把估值转会为期望的数据类型所必须执行的很多显式转化工作。当模板化列表中有数据绑定控件的时候,它特别有用处,因为在那种情况下,通常数据行和数据字段都必须转换。
源代码网推荐  
源代码网推荐    看看下面的例子,它需要把整数显示为货币字符串。在标准的ASP.NET数据绑定语法中,你必须首先转换数据行的类型以检索数据字段IntegerValue。接着把它作为参数传递给String.Format方法。
源代码网推荐  
源代码网推荐  <%# String.Format("{0:c}", (CType(Container.DataItem, DataRowView)("IntegerValue"))) %>
源代码网推荐  
源代码网推荐    这个语法很复杂并且不容易记住。与此形成对照的是,DataBinder.Eval是一个简单的方法,它只有三个参数:数据项的命名容器(naming container)、数据字段名称和格式化字符串。在模板化的控件(例如FormView、 GridView、DetailsView、DataList或Repeater)中,命名容器都是Container.DataItem。页面(Page)是另一种命名容器,也可以用于DataBinder.Eval。前面我们提到,ASP.NET 2.0为DataBinder.Eval提供了一个新的简化的语法(Eval),你可以在数据绑定的控件模板中使用它来自动解析 Container.DataItem。
源代码网推荐  
源代码网推荐  <%# DataBinder.Eval(Container.DataItem, "IntegerValue", "{0:c}") %>
源代码网推荐  <%# Eval("IntegerValue", "{0:c}") %>
源代码网推荐  
源代码网推荐    格式化字符串参数是可选的。如果省略了这个参数,DataBinder.Eval会返回Object类型值,如下所示:
源代码网推荐  
源代码网推荐  <%# CType(DataBinder.Eval(Container.DataItem, "BoolValue"), Boolean) %>
源代码网推荐  
源代码网推荐    我们要重点注意的是,与标准的数据绑定语法相比,DataBinder.Eval会明显地影响性能,这是因为它使用了延迟绑定的反射(reflection)。请明智地使用DataBinder.Eval,特别是在不需要格式化字符串的情况下。  做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华