设为首页 | 加入收藏 | 联系站长
Google
 | 星际争霸 | 星际争霸II | 暗黑破坏神
 | 魔兽争霸 | 英雄无敌  
 您现在的位置: 好技术学习网 >> 技术文章 >> ASP.NET技术 >> ASP.NET基础知识 >> 文章正文
相 关 文 章
解析.Net框架下的XML编程技…
VS.NET下web项目源代码管理
NUnit学习之VS.net 2005篇
在VS.NET 2005中体验clicko…
使用VS.NET 2005 Beta 2初次…
VS.NET 2002下水晶报表的安…
VS.Net中的水晶报表的应用
vs.net+c#程序快速开发数据…
VS.NET解决方案的版本兼容问…
当VS.NET2003遇上2005,WebS…
最 新 热 门
最 新 推 荐
精 彩 游 戏
移动能力强,防御强大,任何地方都可以建筑,隐形,多样性,船舶,科技树…
[星际补丁]1.14·1.13f·1.08b
[星际2]酷图 [星际2]人族视频
[人类]大法师  [兽族]暗影猎手
[精灵]恶魔猎手 [不死]死亡骑士
[资讯]魔兽资讯 [图库]魔兽酷图
[下载]魔兽下载 [壁纸]精美壁纸
暗黑破坏神入门 暗黑破坏神指引
[Hero5]宝物一览   英雄无敌
当前时间是:
ASP.NET 2.0高级数据处理之数据绑定(2)
作者:- 来源:来自互联网 时间:2008-1-7 11:11:27 『 字号:  』

下面的例子演示了如何绑定到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,特别是在不需要格式化字符串的情况下。

  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【打印本文】【关闭窗口

    网站公告 | 关于本站 | 联系站长 | 设为首页 | 加入收藏 | 友情链接 | 版权申明 | 广告服务 | 网站地图 | 访客留言

    Copyright ©
    建议使用1024*768分辨率及第三方浏览器对本站进行浏览
    | |
    本站大部分信息资源来源于网络,仅供学习|研究|探讨|收藏之用,版权归原作者所有!