zoukankan
html css js c++ java
ASP.NET 2.0中实现模板中的数据绑定
模板化的数据绑定控件为我们在页面上显示数据提供了根本的灵活性。你可能还记得ASP.NET v1.x中的几个模板化控件(例如DataList和Repeater控件)。ASP.NET
2
.0仍然支持这些控件,但在模板中绑定数据的语法已经被简化和改善了。本文将讨论在数据绑定控件模板中绑定数据的多种方法。
数据绑定表达式
ASP.NET
2
.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)简化为Eval(fieldname)。Eval方法与DataBinder.Eval一样可以接受一个可选的格式化字符串参数。缩短的Eval语法与DataBinder.Eval的不同点在于,Eval会根据最近的容器对象(例如DataListItem)的DataItem属性来自动地解析字段,而DataBinder.Eval需要使用参数来指定容器。由于这个原因,Eval只能在数据绑定控件的模板中使用,而不能用于Page(页面)层。当然,ASP.NET
2
.0页面中仍然支持DataBinder.Eval,你可以在不支持简化的Eval语法的环境中使用它。
下面的例子演示了如何使用新的简化的Eval数据绑定语法绑定到DataList数据项模板(ItemTemplate)中的Image、Label和HyperLink控件。
<asp:DataList ID
=
"
DataList1
"
RepeatColumns
=
"
5
"
Width
=
"
600
"
runat
=
"
server
"
DataSourceID
=
"
ObjectDataSource1
"
>
<ItemTemplate>
<asp:HyperLink ID
=
"
HyperLink1
"
runat
=
"
server
"
NavigateUrl
=
''
<
%
# Eval(
"
PhotoID
"
,
"
PhotoFormViewPlain.aspx?ID={0}
"
)
%
>
''
>
<asp:Image ID
=
"
Image1
"
Runat
=
"
server
"
ImageUrl
=
''
<
%
# Eval(
"
FileName
"
,
"
images/thumbs/{0}
"
)
%
>
''
/
><
/
asp:HyperLink>
<asp:Label ID
=
"
CaptionLabel
"
runat
=
"
server
"
Text
=
''
<
%
# Eval(
"
Caption
"
)
%
>
''
/
>
<
/
ItemTemplate>
<
/
asp:DataList><br
/
>
<asp:ObjectDataSource ID
=
"
ObjectDataSource1
"
runat
=
"
server
"
TypeName
=
"
DataComponentTableAdapters.PhotosTableAdapter
"
SelectMethod
=
"
GetPhotosForAlbum
"
>
数据绑定也可以作为控件的主题定义(theme definition)的一部分,这样我们就可以通过改变主题来随意地改变模板化控件的布局和外观。但是Theme(主题)模板中只能使用Eval(或者后面讨论的Bind)。绑定到任意的用户代码是被禁止的。
FormView控件
DataList控件在来自数据源的数据项中进行迭代操作,并为每个数据项输出ItemTemplate(数据项模板)。这对于显示数据项列表是有用的,但是通常情况下,你希望在一个窗体中实现单条数据项的绑定操作。为了实现这个目的,ASP.NET
2
.0引入了FormView控件,它能够在任意的模板中每次显示一个数据项。DetailsView和FormView之间的主要差异在于,DetailsView拥有内建的表格显示方式,而FormView需要使用用户自定义的显示模板。在其它方面FormView和DetailsView对象模型是非常相似的。下面的例子显示了一个绑定到ObjectDataSource的FormView控件。该FormView的ItemTemplate属性包含数据绑定的Image、Label和HyperLink控件,与前面的DataList示例类似。
<asp:FormView ID
=
"
FormView1
"
runat
=
"
server
"
DataSourceID
=
"
ObjectDataSource1
"
>
<ItemTemplate>
<asp:Label ID
=
"
CaptionLabel
"
runat
=
"
server
"
Text
=
''
<
%
# Eval(
"
Caption
"
)
%
>
''
Font
-
Size
=
"
32pt
"
/
><br
/
>
<asp:Image ID
=
"
Image1
"
runat
=
"
server
"
ImageUrl
=
''
<
%
# Eval(
"
FileName
"
,
"
images/{0}
"
)
%
>
''
/
>
<asp:HyperLink ID
=
"
HyperLink1
"
Text
=
"
Back to Album
"
NavigateUrl
=
''
<
%
# Eval(
"
AlbumID
"
,
"
PhotosDataList.aspx?ID={0}
"
)
%
>
''
runat
=
"
server
"
/
>
<
/
ItemTemplate>
<
/
asp:FormView>
<asp:ObjectDataSource ID
=
"
ObjectDataSource1
"
runat
=
"
server
"
TypeName
=
"
DataComponentTableAdapters.PhotosTableAdapter
"
SelectMethod
=
"
GetPhoto
"
>
<SelectParameters>
<asp:QueryStringParameter Name
=
"
PhotoID
"
DefaultValue
=
"
9
"
QueryStringField
=
"
ID
"
/
>
<
/
SelectParameters>
<
/
asp:ObjectDataSource>
FormView与DetailsView类似,也跟踪当前显示的数据项,但是当数据源返回列表的时候,我们也可以选择支持多个数据项的分页操作。下面的例子显示了一个带有分页功能的FormView。
<asp:FormView ID
=
"
FormView1
"
Runat
=
"
server
"
DataSourceID
=
"
SqlDataSource1
"
HeaderText
=
"
Books for Author
"
AllowPaging
=
"
True
"
>
<ItemTemplate>
<asp:Image ID
=
"
Image1
"
ImageUrl
=
''
<
%
# Eval(
"
title_id
"
,
"
~/Images/{0}.gif
"
)
%
>
''
Runat
=
"
server
"
/
>
<asp:Label ID
=
"
Label1
"
Font
-
Size
=
"
1.2em
"
Font
-
Bold
=
"
true
"
Text
=
''
<
%
# Eval(
"
title
"
)
%
>
''
runat
=
"
server
"
/
>
<asp:Label ID
=
"
Label2
"
Text
=
''
<
%
# Eval(
"
price
"
,
"
{0:c}
"
)
%
>
''
runat
=
"
server
"
/
>
<
/
ItemTemplate>
<
/
asp:FormView>
查看全文
相关阅读:
vue简介
npm是什么
杨辉三角(打印一个等腰、直角三角形)
JS实现金额转换(将输入的阿拉伯数字)转换成中文
Http请求处理流程
FusionCharts的使用方法
几种流行的AJAX框架对比:Jquery,Mootools,Dojo,ExtJs,Dwr
Ubuntu 编译安装PHP
Ubuntu/Deepin 添加桌面图标
shell 脚本 ${1:-"false"}的含义
原文地址:https://www.cnblogs.com/RuiLei/p/765249.html
最新文章
SHELL用法六(Find语句)
SHELL用法五(Case语句)
SHELL用法四(for语句)
SHELL用法三(变量及参数设置)
SHELL用法二(练习)
SHELL用法一(基本概念)
RAM子账户登录DMS对库进行管理
仿东软OA协同办公服务管理系统
未能加载文件或程序集Microsoft.ReportViewer.WebForms, Version=10.0.0.0
SqlServer2008R2附件数据库失败
热门文章
PHP基本问题
关于“ora-01483:DATE或NUMBER赋值变量的长度无效”的问题
git服务器的搭建
git init 和 git init --bare 的区别
Win7 64位系统 VS2010连接Oracle报错的问题
jQuery触发<a>标签的点击事件无效
js 模块开发之一(模块开发价值)
iis8.5部署net项目
“没有找到mfc100u.dll”的解决方法
layui上传图片接口
Copyright © 2011-2022 走看看