| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
ASP.NET 2.0高级数据处理之数据绑定

作者:未知    文章来源:网络    点击数:    更新时间:2007-5-17
 


 

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,特别是在不需要格式化字符串的情况下。

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


  • 上一篇文章:

  • 下一篇文章: 没有了
  • 相关文章