当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 通过数据捆绑将数据添加到ASP.NET 页面

ASP.NET
使用函数传递参数来执行相应的数据库操作
如何实现在窗体和窗体之间进行传递数据
ASP.NET中文显示之两种解决方法
ASP.NET、JSP及PHP之间的抉择
ASP.NET 2.0发送电子邮件中存在的问题
谈谈HtmlControl与WebControl的区别与用途
从ASP.NET 1.1升级到ASP.NET 2.0要考虑的Cookie问题
通过系统配置来提高ASP.NET应用程序的稳定性
妙用ASP2.0中的URL映射改变网址
AJAX实现web页面中级联菜单的设计
ASP.NET跨页面传值技巧总结
再议ASP.NET DataGrid控件中的“添加新行”功能
Geometry 对象浅析
重构CollapsibleSplitter
如何利用.NET Framework使用RSS feed
ASP.NET获取IP与MAC地址的方法
在ASP.NET 2.0中使用样式、主题和皮肤
ASP.NET中为GridView添加删除提示框
ASP.NET 2.0,无刷新页面新境界
看看一个.net版对话框控件

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 78 ::
收藏到网摘: n/a

 

如果熟悉经典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认证。