分享
 
 
 

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

王朝asp·作者佚名  2008-05-30
窄屏简体版  字體: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有