通过数据捆绑将数据添加到ASP.NET 页面

asp.net|数据|页面

如果熟悉经典ASP,即使函数不相同,那么你也会很熟悉ASP.NET中的数据绑定语法。数据绑定的表达式是ASPX文件中<%# and %>中间的代码。它允许将数据绑定到控制器,同时也允许绑定属性、表达式和页面上方法调用的结果绑定到控制器。虽然这一特征很容易使用,但是有时在确定什么内容被允许绑定和是否它已经被使用的时候又造成一定的混乱。

数据绑定要素

当页面的ASP.NET中DataBind方法被调用的时候,数据绑定表达式与ASP.NET中的属性、服务器控制属性和数据源进行链接。在打开服务器控制的标签或页面上任何地方的时候,可以将表达式放在属性值/数值对的数值这一边。所有的数据绑定表达式,不管放在什么地方,都包含在<%# and %>字符中。

使用数据控制器的时候(Repeater, DataGrid等等),表达式的参数一般是数据源的列名。无论如何,只要它返回一个值,任何有效的表达式都是可以使用的。同样,相同的语法也可用于外部列表控制。这包括在页面上显示值或组装控制器属性。

Container.DataItem是DataItem针对某一特定细目在运行时的别名。它从数据源映射一个单独的细目,例如从数据查询中得到一行或从一个向量中得到一个单独的元素等。DataItem的实际数据类型由数据源确定。因此,当处理一个整型向量时,DataItem也是整型的。

下面的列表回顾了一些VB.NET的语法情况:

<%# Container.DataItem %>--返回字符串向量

<%# Container.DataItem("expression") %>--返回DataView 容器中的某一特定字段

<%# Container.DataItem.PropertyName %>--返回数据源中特定字符串的属性值

<%# CStr(Container.DataItem.PropertyName) %>--返回属性值并转化成字符串形式

使用C#时,语法稍微有些不同。下面的列表包含了与上面列表相应的C#代码。注意,基本的语法是一致的,但是在返回属性值和数据类型的转换时有变化。

<%# Container.DataItem %>

<%# ((DataRowView)Container.DataItem)["PropertyName"] %>

<%# ((ObjectType)Container.DataItem).PropertyName %>

<%# ((ObjectType)Container.DataItem).PropertyName.ToString() %>

当对页面的属性和方法进行作用时,语法是相容的。只要是返回字符串值,语法则完全相同。下面的列表给出了示例:

<%# propertyName %>--返回页面水平属性值

<asp:ListBox id="lstValues" datasource='<%# propertyName %>' runat="server">--返回与数据控制器绑定的页面水平属性值(向量、对象集等)

<%# (objectName.PropertyName) %>--显示页面水平对象属性值

<%# MethodName() %>--显示页面方法返回的值

使用下面的语法可以使用页面上的单个值(属性和方法返回的值等等)

<%= Value %>

Listing A中C#代码说明了在ASP.NET Web表格中的数据绑定。它从SQL Sever Northwind Employees表中挑选出了雇员的名字和电话号码。查询值通过ASP.NET Repeater控制器显示。列值通过数据绑定插入。表格的窗体标题通过方法调用组装。另外,Dataitem的ItemIndex性质用于显示行数。ItemIndex性质从0开始,在其显示之间会加1。

Listing B包含了等同的VB.NET代码。主要的不同之处在于VB.NET中使用圆括号而C#中使用方括号。而且行的投射在VB.NET中是不必要的。

使用Contain.DataItem有些沉闷,因为随时要注意数据类型和数据类型的转化。微软提供了DataBinder类,它可以进一步简化开发。

使用DataBinder

微软文档(MSDN)中详细解释了DataBinder类。此方法可以让RAD设计器轻易的产生解析数据绑定语法。此方法也可以用于Web窗体页面的声明简化从一种到另一类型的映射。

在ASP.NET页面中使用数据值时,可以使用DataBinder 类的Eval方法让.NET完成这个繁重的工作。Eval方法接受先前被覆盖的Container.DataItem对象;它计算出表达式中每一确定字段的详细数据并且将他们显示出来。其语法如下:

DataBinder.Eval(Container.DataItem, "field name", "optional formatting")

采用此语法,可以使用DataBinder.Eval重写第一个示例,其C#代码见Listing C。Listing D包含VB.NET等同代码。

DataBinder.Eval在将工作推向系统方面的能力是很强的,同时也要注意系统定位元素和确定对象/数据类型的时间和资源的开销很大。

丰富的选项

数据绑定使得向ASP.NET页面中放入数据的工作变得相对简单。有很多种不同数据绑定选项可供选择,他们包括:绑定数据到控制器并且确定如何显示,或在ASP.NET页面上选择声明的数据绑定到控制器。最后,它由你的喜好所决定,但是有很多选择终究是件好事。

Tony Patton作为软件开发人员开始了其职业生涯,他已经通过了Java、VB、Lotus和XML认证。

时间: 2024-12-09 10:19:38

通过数据捆绑将数据添加到ASP.NET 页面的相关文章

ASP.NET 2.0数据教程之十八:在ASP.NET页面中处理BLL/DAL层的异常

返回"ASP.NET 2.0数据教程目录" 导言 在一个使用了分层体系架构的ASP.NET web应用系统里处理数据,一般 遵循以下几步: 1.确定业务逻辑层需要调用哪个方法,并且需要出入哪些 参数.这些参数可以通过硬编码设置,程序自动设定,或者由用户输入. 2.调用此方法. 3.处理结果.当调用一个返回数据的BLL方法时, 这包括绑定数据到Data Web服务器控件.而对于修改数据的BLL方法而言,这包括 基于返回值的基础上执行某些动作,或者适当地处理在第二步中引发的异常. 正如我们

通过数据捆绑将数据添加到ASP.NET页面

如果熟悉经典ASP,即使函数不相同,那么你也会很熟悉ASP.NET中的数据绑定语法.数据绑定的表达式是ASPX文件中<%# and %>中间的代码.它允许将数据绑定到控制器,同时也允许绑定属性.表达式和页面上方法调用的结果绑定到控制器.虽然这一特征很容易使用,但是有时在确定什么内容被允许绑定和是否它已经被使用的时候又造成一定的混乱. 数据绑定要素 当页面的ASP.NET中DataBind方法被调用的时候,数据绑定表达式与ASP.NET中的属性.服务器控制属性和数据源进行链接.在打开服务器控制的

在ASP.NET页面中实现数据饼图

在<在ASP.NET页面中实现数据棒图>中已经介绍了ASP.NET中数据棒图的绘制方法.前文已经说过,ASP.NET之所以能够在客户端浏览器中形成各种数据图片,是因为在ASP.NET中提供了绘图功能,具体的作法是先在服务器端创建一个Bitmap实例,然后利用ASP.NET中提供的绘图功能,按照要生成的图片的模样,进行绘制,最后把绘制好的实例以数据流的方式传送到客户端的浏览器上,并形成图片显示出来.本文要介绍的在ASP.NET页面中实现数据饼图采用的基本也是这种方法.饼图有时称为"Pi

ASP.NET页面间数据传递的9种方法

本文我们将讨论的是ASP.NET页面间数据传递的几种方法,对此希望能帮助大家正确的理解ASP.NET页面间数据传递的用处以及便利性. 0.引言 Web页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留.在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确.安全和高效地传送,Asp.net 提供了状态管理等多种技术来解决保存和传递数据问题,以下来探讨.NET 下的解决此问题的各种

ASP.NET页面间数据传递小结

asp.net|数据|页面 ASP.NET较ASP最大的优点,也是其受到越来越多程序员的欢迎的主要原因就是,ASP.NET为开发者提供了事件驱动的开发模式,从此程序员可以像利用可视化编程工具开发Windows应用程序一样来开发ASP.NET的基于Web页面的应用程序了. 一般稍微庞大的ASP.NET程序至少拥有二个或以上的Web页面,程序员在开发类似ASP.NET应用程序时一般都需要处理在多个Web页面传递数据的问题.我们知道ASP.NET程序中的各个Web页面类似于Windows应用程序中的F

在ASP.NET页面中实现数据棒图

asp.net|数据|页面     棒图有时又称为"Bar"图.在我的上一篇文章<在ASP.net实现数据图表>中已经介绍了在浏览器看到的图表,一般都是图片文件.那么在ASP.NET中是否也可以生成这些图表?答案是肯定的,因为在ASP.NET中拥有了一个新功能--绘图功能,通过此功能就能够按照要实现的图表的模样来绘制,最后在客户端的浏览器中形成一个图片,从而显示出图表来.        本文就在上一篇文章的基础上,进一步介绍在ASP.NET页面中实现Bar图的具体方法.希望

ASP.NET页面间数据传递

0.引言 Web页面是无状态的,服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留.在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确.安全和高效地传送,Asp.net 提供了状态管理等多种技术来解决保存和传递数据问题,以下来探讨.NET 下的解决此问题的各种方法和各自的适用场合. 1.ASP.NET页面间数据传递的各种方法和分析 1.1 使用Querystring 方法 QueryStrin

ASP.NET页面传数据的各种方法和分析

 Web页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留.在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确.安全和高效地传送,Asp.net 提供了状态管理等多种技术来解决保存和传递数据问题,以下来探讨.NET 下的解决此问题的各种方法和各自的适用场合.  1.1 使用Querystring 方法  QueryString 也叫查询字符串, 这种方法将要传递的数据附加在网

ASP.NET 页面间数据传递方法

  0.引言 Web 页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留.在用Asp.NET 设计开发一个Web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确.安全和高效地传送,Asp.net 提供了状态管理等多种技术来解决保存和传递数据问题,以下来探讨.NET 下的解决此问题的各种方法和各自的适用场合. 1.数据传递的各种方法和分析 1.1 使用Querystring 方法 QueryString 也叫查询