第15章 数据绑定控件
VB中数据控件绑定
VB中数据控件绑定什么是绑定控件?绑定控件指的是一个窗体上的”对象“,由于创建它的那个控件设置了显示数据库信息方面的功能,通过设置对象的datasource(数据源)属性和datafield(数据字段)属性,使这个对象“绑定”于一数据库。
数据对象DATA的几个重要属性:一,connect属性:数据库类型,缺省为ACCESS。
二,databasename属性:选定一个路径下数据库文件,可在属性窗口设置,代码中例如:Data1.DatabaseName = "d:\vb6\Nwind.mdb"三,recordsource属性:选定数据库中的一个表,如果不在属性窗口设置,代码中写也可以,例如:Data1.RecordSource = "个体户管理"与DATA对象绑定的对象的相关属性:四。
绑定对象的datasource属性:在属性窗口中设置,确定“绑定”到哪个数据对象,如设置为Data1五。
将绑定对象的datafield属性设置为该表中的某个字段名,如:Text1.DataField= "姓名"以上是几个最基本的属性。
DATA对象的readonly属性:选择是否以只读方式打开数据库。
Data对象的Exclusive属性:是否以独占方式打开数据库。
Data对象的UpdateRecord方法:在不触发Validate事件的情况下保存绑定控件中的值到数据库。
Data对象的UpdateControls方法:把数据库中的记录值写到绑定控件中。
即忽略当前绑定控件的值,相当于取消更改。
Validate事件:当数据被增删,修改,添加等操作前引发。
Reposition事件:当记录指针移动到新位置时引发。
ADO是以后发展的趋势,将替代DAO和RDO,ADO可访问本地数据库,也可访问远程数据库。
基于ADO对象的数据控件:Adodc(使用方法和DATA差不多,但DATA是DAO的),与Adodc绑定的控件:DataGrid控件显示记录集并可修改;DataList控件;DataCombo控件,DataRepeater控件可同时显示几个绑定控件数据。
第15章 ADO与数据绑定控件
RecordSet对象的主要方法(续)
• 2.AddNew方法
• 用于在结果集中添加一个新记录。
• 3.Update方法
• 将新记录缓冲区中的记录或者对当前记录的修改真正 写到数据库中。
• 4.Delete方法
• 删除结果集中当前行记录指针所指的记录,并且这个 删除是直接对数据库数据操作的,删除后的数据不可 恢复。
ADO数据控件名.Refresh
ADO数据控件的主要事件
• EndOfRecordset事件
当在结果集中移动记录指针时,当记录指针超出了结果 集的最后一条记录时,触发此事件。
• Error事件
只有在没有执行任何VB代码而发生了一个数据访问错误 时,才会触发此事件。
• WillChangeField和FieldChangeComplete事件
Fields对象的主要属性
• :字段名称。 • Fields.Value:字段的值。 • Fields.OrdinalPosition:字段在Fields集合中 的顺序。 • Fields.Type:字段的数据类型。 • Fields.Size:字段的最大字节数。 • Fields.SourceTable:字段来自的表 • Fields.SourceField:字段来自的表中的列
用datagrid事件确认更新事件触发时刻beforecoledit移入新单元后但在单元中敲入第一个字符之前coledit在单元中敲入第一字符后aftercoledit紧随aftercolupdate事件之后beforecolupdate改变单元值或移入一个新单元之后但在datagrid缓冲区内容改变之前aftercolupdate在为更新的列修改缓冲区之后同aftercoleditbeforedelete在选中一行并按delete键之后但在列从recordset中删除之前afterdelete从recordset删除一行之后beforeinsert在临时加入的记录组成的列中敲入至少一个字符之后但在行被加入到recordset之前afterinsert在行加入到recordset之后beforeupdate在修改任何列的值或移动一个新记录之后但在recordset更新之前afterupdate在更新recordset的行之后privatesubdtgstudentheadclickbyvalcolindexadodc1recordsetsortdescenddtgstudentrefreshendsubdatagrid排序示例datagrid隐藏列示例privatesubcmdsomecolumnsclick?隐藏ssex和sage列dtgstudentcolumns2
数据控件和数据绑定控件
1.2 Recordset对象的属性与方法
l BOF、EOF属性:如果当前记录位于Recordset对象的最后一个记录之 后,则EOF值为True,否则为False 。如果当前记录位于Recordset对象的 第一个记录之前,则BOF值为True,否则为False 。 使用BOF和EOF属性可确定Recordset对象是否包含记录,也可以判断 Recordset对象所指定的记录集的边界。 l RecordCount属性:指示Recordset对象中记录的总数,返回类型为长 整形。 l NoMatch属性:指示当使用Seek方法或Find方法进行查找时,是否找 到匹配的记录。当找到指定的记录时,返回值为True,否则返回值为 False。 l Fields属性:Recordset对象的Fields属性是一个集合,该集合包含 Recordset 对 象 的 所 有 Field ( 字 段 ) 对 象 。 每 个 Field 对 象 对 应 于 Recordset中的一列。使用Field对象的Value属性可设置或返回当前记录 的数据。 l Index属性:设置或返回表类型记录集中的当前索引名称,该索引名 称必须是已经定义的一个索引。设置或返回的值为字符串类型。
返回章首
1.1 数据控件
2、方法 l UpdateControls方法:将被绑定控件的内容恢复为其原始值,等效于 用户更改了数据之后决定取消更改。 l UpdateRecord方法:将被绑定控件的当前值保存到数据库中。 3、事件 l Error事件:通常是在代码运行中出现错误时触发该事件,如果未对 Error事件编写事件过程,Visual Basic将显示与该错误相关的信息。注意: 出现在 Form_Load 事件之前的错误是不可捕获的,也不会触发 Error 事 件。 l Reposition事件:当一条记录成为当前记录之后触发。Recordset对 象中的第一条记录成为当前记录,这时会触发Reposition事件,无论何 时只要用户单击Data控件上的某个按钮,或进行记录间的移动,或使用 了某个Move方法(如MoveNext)、Find方法(如FindFist)或任何其他 改变当前记录的属性或方法,均会触发Reposition事件。 l Validate事件:当一条记录成为当前记录之前触发。使用Delete、 Unload或Close操作之前会触发该事件。
第15章 ADO与数据绑定控件
DataGrid控件
• 正式名称是:Microsoft DataGrid Control 6(OLE DB), • 以表格的形式显示结果集中的全部数据, • 并允许用户在此控件中浏览、添加、删除 和修改记录。 • 需手工添加到工具箱中。
DataGrid控件的特殊属性
用DataGrid事件确认更新
15.3 ADO对象
• 由一组相互独立的对象组成,对象模型中的 每个对象都具有各自的属性、方法和事件, • 通过设置和使用这些对象的属性、方法和事 件可以实现对数据库的全部操作。
ADO对象模型
Connection Errors Error
Command
Recordset
Parameters
Fields
Connection对象的主要属性
• ConnectionString 用于指定连接到的数据源名称,使用方法及含义 同ADO数据控件。 • ConnectionTimeout 执行Open方法之后等待建立连接的秒数,默认 为15秒。0表示无限期等待。 • State 表示Connection对象是打开还是关闭的常量。
事件 BeforeColEdit 触发时刻 移入新单元后,但在单元中敲入第一个字符之前
ColEdit
AfterColEdit BeforeColUpdate AfterColUpdate BeforeDelete AfterDelete BeforeInsert
在单元中敲入第一字符后
紧随AfterColUpdate事件之后 改变单元值或移入一个新单元之后,但在DataGrid缓冲区内容改变 之前 在为更新的列修改缓冲区之后(同AfterColEdit) 在选中一行并按Delete键之后,但在列从Recordset中删除之前 从Recordset删除一行之后 在临时加入的记录组成的列中敲入至少一个字符之后,但在行被加 入到Recordset之前
什么是绑定控件
什么是绑定控件什么是绑定控件?绑定控件指的是一个窗体上的”对象“,由于创建它的那个控件设置了显示数据库信息方面的功能,通过设置对象的datasource(数据源)属性和datafield(数据字段)属性,使这个对象“绑定”于一数据库。
数据对象DATA的几个重要属性:一,connect属性:数据库类型,缺省为ACCESS。
二,databasename属性:选定一个路径下数据库文件,可在属性窗口设置,代码中例如:Data1.DatabaseName = "d:\vb6\Nwind.mdb"三,recordsource属性:选定数据库中的一个表,如果不在属性窗口设置,代码中写也可以,例如:Data1.RecordSource = "个体户管理"与DATA对象绑定的对象的相关属性:四。
绑定对象的datasource属性:在属性窗口中设置,确定“绑定”到哪个数据对象,如设置为Data1五。
将绑定对象的datafield属性设置为该表中的某个字段名,如:Text1.DataField = "姓名"以上是几个最基本的属性。
DATA对象的readonly属性:选择是否以只读方式打开数据库。
Data对象的Exclusive属性:是否以独占方式打开数据库。
Data对象的UpdateRecord方法:在不触发Validate事件的情况下保存绑定控件中的值到数据库。
Data对象的UpdateControls方法:把数据库中的记录值写到绑定控件中。
即忽略当前绑定控件的值,相当于取消更改。
Validate事件:当数据被增删,修改,添加等操作前引发。
Reposition事件:当记录指针移动到新位置时引发。
ADO是以后发展的趋势,将替代DAO和RDO,ADO可访问本地数据库,也可访问远程数据库。
基于ADO对象的数据控件:Adodc(使用方法和DATA差不多,但DATA是DAO的),与Adodc 绑定的控件:DataGrid控件显示记录集并可修改;DataList控件;DataCombo控件,DataRepeater 控件可同时显示几个绑定控件数据。
数据绑定控件(一)
控件
数据
检索到的 数据
数据绑定是将数据链接到显 示该数据的控件的过程
欢迎 “ ”
3
数据绑定简介 2-2
用于绑定控件的表达式置于 <%#......%> 标记之间
4
代码视图
简单属性绑定
//定义成员变量
protected static int vote1 = 0;
protected static int vote2 = 0;
<asp:Label id="lblVreottuer1n""T0e%xt"=; "<%#GetVotePercent(vote1)%>"
vote1 += 1;
<asp:Imagtehiids=.D"imatgaVBoitned1(")r;unat="server" Height="12px" Width="<%#4*vote1%>"
I}mageUrl="red.bmp"></asp:Image>
<parsivpa:Lteabveol iidd=b"tlbnlVVottee12"_TCelxict=k"(<o%b#jevcottes1e%n>d"erru, nSayt=s"tesemrv.Eerv">e<n/taAsrpg:Lsaeb)el>
<{asp:Image id="imgVote2" runat="server" Height="12px" Width="<%#4*vote2%>"
数据绑定控件—GridView控件
10 显示空数据
• 当没有结果从数据源返回的时候,GridView的两 个属性可以用来显示内容:EmptyDataText和 EmptyDataTemplate。
• 示例1:页面包含一个电影搜索的表单,若没有电影 名称和用户输入的搜索字符串相匹配,就显示 EmptyDataText属性值。
• ShowEmptyDataText.aspx
• 示例:在标准的编辑按钮中使用图标 • ShowCommandField.aspx
• 注:在使用CommandField的时候,不需要启用 AutoGenerateEditButton或AutoGenerateDeleteButton属性 ,因为可以直接用CommandField来创建标准的编辑按钮。
11 格式化GridView控件
• GridView控件有丰富的格式化属性,通过这些属 性可以修改GridView的外观。但是建议不要使用 这些属性来修改外观。最好使用CSS来格式化 GridView控件外观。
• AlternationRowStyle—可以设置交替行的外观 • FooterStyle—可以设置脚注行的外观 • HeaderStyle—可以设置标题行的外观 • PagerStyle—可以设置页导航的外观 • RowStyle—可以设置交替行的外观 • SelectedRowStyle—可以设置选中行的外观
• 示例:使用CSS设置GridView控件的格式 • FormatGridView.aspx
• 当用户单击【详细信息】按钮时,将引发 SelectedIndexChanging事件,在该事件中通过 NewSelectedIndex属性获取当前行的索引值。 GridView1.DataKeys[e.NewSelectedIndex]
数据绑定控件
版本。它每次从相关数据源中选择一条记录显示,选择性地提供分页按钮,
用于在记录之间移动。与DetailsView控件不同的是,FormView不使用数 据控件字段,而是允许用户通过模板定义每个项目的显示。FormView支 持其数据源提供的任何基本操作。
•
FormView控件是作为通常使用的更新和插入结构而设计的,
选的;但是,必须为该控件的配置模式创建模板。例如,
要插入记录的话,必须定义InsertItemTemplate。
•
FormView 是 新 的 数 据 绑 定 控 件 , 使 用起 来 像是
DetailsView的模板化版本。它每次从相关数据源中选择
一条记录显示,选择性地提供分页按钮,用于在记录之
• DataList控件:
•
DataList控件可以自定义数据库记录的呈现格式。显示数
据的格式在创建的模板中定义。可以为项、交替项、选定项和
编辑项创建模板。标头、脚注和分隔符模板也用于自定义
DataList的整体外观。通过在模板中包括Button控件,可将列表
项连接到代码,这些代码使用户得以在显示、选择和编辑模式
DetailsView控件和FormView控件之间的主要差异在于DetailsView具有内
置 的 表 格 呈 现 方 式 , 而 FormView 需 要 用 户 定 义 的 模 板 用 于 呈 现 。
FormView和DetailsView对象模型在其它方面非常类似。
•
FormView是新的数据绑定控件,使用起来像是DetailsView的模板化
•
(2)对于有DataSource属性的控件,可直接把数据源的
数据指定给控件DataSource属性。
第15章ADO与数据绑定控件.
Fields对象的主要属性
• :字段名称。 • Fields.Value:字段的值。 • Fields.OrdinalPosition:字段在Fields集合中的 顺序。 • Fields.Type:字段的数据类型。 • Fields.Size:字段的最大字节数。 • Fields.SourceTable:字段来自的表 • Fields.SourceField:字段来自的表中的列
Байду номын сангаас
Adodc控件在窗体上的形式
ADO数据控件的主要属性
• ConnectionString属性
• 用于建立与数据源的连接
• CommandType属性
• 指明命令的类型,共有四种
• RecordSource属性
• 用于设置ADO结果集的内容
• RecordSet属性
• 保存记录集,本身又是一个对象
RecordSource属性
• 用于设置ADO结果集的内容. • 这个内容可以来自于一张表,也可以来自一 个查询语句,也可以来自一个存储过程的执 行结果。 • RecordSource属性的值与CommandType 属性的值有关,两者协同使用。
设置RecordSource属性
• 在已经设置好ConnectionString属性的ADO数据控 件上右击鼠标,在弹出的菜单中选择“ADODC属性” 命令,在弹出此对话框上选择“记录源”标签页。
示例
• 例:利用Fields对象,得到当前行记录的某 字段的值,用法如下: • Fields(“字段名”).Value
或:
• Fields(数字).Value
RecordSet对象的主要方法
• 1. Move方法组
• MoveFirst方法:将当前行记录指针移到结果集中的 第一行。 • MovePrevious方法:将当前行记录指针向前移动一 行。 • MoveNext方法:将当前行记录指针向后移动一行。 • MoveLast方法:将当前行记录指针移到结果集中的 最后一行。
数据绑定和数据控件
SqlDataSource控件
SqlDataSource控件的属性
1. 2.
3.
4.
5.
6.
Select:方法所检索到的数据的时间。 ConnectionString:获取或设置特定于提供程序的连接字符 串,SqlDataSource控件使用该字符串连接基础数据库。 DeleteCommand:获取或设置SqlDataSource控件从基础数据库删 除数据所用的SQL 字符串。 InsertCommand:获取或设置SqlDataSource控件将数据插入基础数 据库所用的SQL字符串。 SelectCommand:获取或设置SqlDataSource控件从基础数据库检 索数据所用的SQL 字符串。 UpdateCommand:获取或设置SqlDataSource控件更新基础数据库 中的数据所用的SQL字符串。
数据绑定概述
绑定到复杂的数据源
复杂的数据源通常包括列表控件和支持数据绑定的 控件,提供一系列的这类控件:
1. 列表控件:ListBox、DropDownList、CheckBoxList和 RadioButtonList等。 2. 复杂数据控件:GirdView、DetailsView、FormView和 ListView等。
它们的常规绑定步骤如下:
1.将用于显示数据的Web服务器控件添加到页面中。 2.将数据源对象赋给控件的DataSource属性。 3.执行控件的DataBind方法。
SqlDataSource控件
SqlDataSource控件
可以将 SqlDataSource控件和用于显示数据的其他控件( 如GridView、FormView和DetailsView控件)结合使用, 使用很少的代码或不使用代码就可以在网页中显示 和操作数据。
ASP.NET数据绑定控件
数据绑定控件数据绑定控件简介数据绑定分为:数据源和数据绑定控件两部分,数据绑定控件通过数据源来获得数据,通过数据源来隔离数据提供者和数据使⽤者,数据源有:SqlDataSource,AccessDataSource,ObjectDataSource,LinqDataSource,XmlDataSource 等⼤部分不会直连接数据库,所以SqlDataSource,AccessDataSource不会使⽤ObjectDataSource 是WEB开发中应⽤最⼴的数据源,也能很容易的进⾏数据库切换数据绑定控件有:列表数据绑定控件(DropDownList,RadioButtonList,ListBox,CheckBoxList等)与复杂控件(ListView,Repeater,GridView,DetailsView,FormView,DataList,DataGrid等)Repeater是最轻量级的组件,在前台⽤的最多,ListView是.NET3.5中新增的控件,它是 GridView,DetailsView,FormView,Repeater等这些控件的⼤统⼀者,那些控件的优点它都有ObjectDataSourceObjectDataSource ⽤来将⼀个类做为数据源,TypeName属性为数据源类的全名,有DeleteMethod,InsertMethod,SelectMethod,UpdateMethod等⼏个属性,分别为类中删除,插⼊,查询,更新数据的⽅法名这些⽅法可能有参数,参数的值是通过DeleteParameters,UpdateParameters,InserParameters等嵌套设置⼿⼯编写ObjectDataSource太⿇烦,使⽤界⾯来完成,将ObjectDataSource拖放到界⾯上,在右上⾓选择"配置数据源"即可进⾏配置,数据源类⼀般⽤数据集就可以,⽣成完后,在“配置数据源”中就能看到了GridView控件选择DataKeyNames属性DataKeys属性取选中⾏的数据取DataKey单⼀Key复合Key取⾮Key列默认⽅法:Cells[0].Text使⽤模板⾥的控件(复杂列)---在”模板⾥讲”---- 处理事件RowCommand在 GridView 控件中单击某个按钮时发⽣。
控件数据绑定底层原理
控件数据绑定底层原理宝子们!今天咱们来唠唠控件数据绑定的底层原理,这就像是一场神奇的魔法之旅哦。
咱先来说说啥是控件数据绑定哈。
想象一下,控件就像是一个个小木偶,而数据呢,就是那些控制木偶动作的丝线。
数据绑定就是把数据和这些控件连接起来,让控件能够根据数据的变化做出各种有趣的反应。
比如说,一个文本框控件,它可以根据绑定的数据显示不同的文字内容,就像小木偶根据丝线的拉动摆出不同的姿势一样。
那这底层是咋实现的呢?其实呀,这里面有个很重要的概念叫观察者模式。
这模式就像是一群小伙伴之间的默契游戏。
数据就像是那个被大家关注的小明星,控件呢,就是那些小粉丝。
当数据这个小明星有了变化,比如说换了新衣服(数据的值改变了),它就会告诉那些关注它的小粉丝(控件),“嗨,我变啦!”然后控件们就会根据这个消息做出反应,像是文本框更新显示的文字,按钮改变它的状态之类的。
从代码的角度来看呢,在很多编程语言里,都有一些特殊的机制来实现这个过程。
就拿JavaScript来说吧,在前端开发里,我们可以通过一些对象的属性监听来实现数据绑定。
当一个对象的属性(也就是数据啦)发生变化的时候,我们可以设置一些函数来捕捉这个变化,然后再把这个变化传递给对应的控件。
这就像是在数据和控件之间搭了一座秘密的小桥,数据一有动静,就通过这座桥通知控件。
再深入一点,在一些框架里,像Vue.js,它的响应式原理也是基于数据绑定的底层逻辑的。
Vue会把数据进行特殊的处理,把普通的数据变成响应式的数据。
就像是给数据注入了魔法一样,一旦这个数据被使用在控件上(比如在模板里绑定到一个输入框),那么这个数据和控件之间就建立了一种神秘的联系。
当数据改变的时候,Vue 会自动去更新那些和这个数据相关的控件。
这就像是一个智能的管家,时刻关注着数据的变化,然后把家里(界面上的控件)收拾得井井有条。
而且呀,数据绑定还涉及到内存管理的问题呢。
你想啊,如果数据和控件之间的关系乱成一团麻,那内存不就像个被搞得乱七八糟的小房间了嘛。
数据绑定
1、SqlDataSource控件的简单使用 在HTML源中IDE根据向导自动生成:
ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>“
这行代码用于获取web.config中<connectionsStrings>配置节 中,键名为NorthwindConnectionString的字符值。
图示GridView的列与行
header
CommandFiel
BoundedField
footer
27
1. GridView的绑定列
当GridView控件与SqlDataSource绑定时,各字段会 自动显示,选中GridView控件的小三角,可对各列 进行编辑。
(1)ImageField
可以在GridView控件所呈现的表格中显示图片列。 一般来说,绑定的是图片的路径。它的HTML源中 声明如下:
这个@CategoryID的值就来源于下拉框传 出分类的ID值 参考资源: 带参数查询的SqlDataSource.exe IDE自动生成的HTML源:
实现控件的属性值与参数对象绑定特性。其中包含3个关 键的属性设置:一是Name,设置绑定的参数名称;二是 ControlID,设置提供值的控件名称;三是 PropertyName,设置提供值的控件属性名称。
可以针对不同的场景定义不同的模板,比如为浏 览状态显示一个只读的模板(通常用Label来表 达信息),然后为编辑状态显示另一个模板(通 常用TextBox来向用户提供修改信息的手段)。
大多数数据绑定控件都提供了相应的方法在不同 的状态间切换(比如从浏览切换到编辑状态), 并会自动加载相应的模板,与此同时,还会激发 相应的事件。
VB中数据控件绑定
VB 中数据控件绑定什么是绑定控件?绑定控件指的是一个窗体上的”对象“,因为创立它的那个控件设置了显示数据库信息方面的功能,经过设置对象的datasource (数据源)属性和datafield(数据字段)属性,使这个对象“绑定”于一数据库。
数据对象 DATA 的几个重要属性:一, connect 属性:数据库种类,缺省为ACCESS 。
二, databasename属性:选定一个路径下数据库文件,可在属性窗口设置,代码中例如: Data1.DatabaseName = "d:\vb6\Nwind.mdb"三,recordsource 属性:选定数据库中的一个表,假如不在属性窗口设置,代码中写也能够,比如: Data1.RecordSource = " 个体户管理 "与 DATA 对象绑定的对象的有关属性:四。
绑定对象的datasource属性:在属性窗口中设置,确立“绑定”到哪个数据对象,如设置为 Data1五。
将绑定对象的 datafield 属性设置为该表中的某个字段名,如:="姓名"以上是几个最基本的属性。
DATA 对象的 readonly 属性:选择能否以只读方式翻开数据库。
Data 对象的 Exclusive 属性:能否以独占方式翻开数据库。
Data 对象的 UpdateRecord 方法:在不触发 Validate 事件的情况下保留绑定控件中的值到数据库。
Data 对象的 UpdateControls 方法:把数据库中的记录值写到绑定控件中。
即忽视目前绑定控件的值,相当于撤消改正。
Validate 事件:当数据被增删,改正,增加等操作前引起。
Reposition 事件:当记录指针挪动到新地点时引起。
ADO 是此后发展的趋向,将代替DAO 和 RDO , ADO 可访问当地数据库,也可接见远程数据库。
鉴于ADO 对象的数据控件:Adodc(使用方法和DATA 差不多,但 DATA 是 DAO 的),与 Adodc绑定的控件: DataGrid 控件显示记录集并可改正; DataList 控件; DataCombo 控件,DataRepeater 控件可同时显示几个绑定控件数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
15.2.2 ListView控件的分组布局
ListView控件提供了一个分组布局的功能,该功能会将 ItemTemplate中的项以水平平铺方向进行布局.在平铺表布局中, 项在行中沿水平方向重复出现.项重复出现的次数由ListView控 件的GroupItemCount 属性指定.GridView控件中有一个 GroupTemplate元素,使用该元素可以创建分组布局的功能,下面 将使用该功能为前面示例的Northwind数据库的Products表创建一 个平铺的特性.
15.2.3 使用DataPager分页
ListView本身没有提供分页功能,可以借助于DataPage控件.DataPage控 件是一个专门用于分页的服务器控件.如果DataPager位于实现了 IPageableItemContainer 接口的控件中时,将自动完成分页功能,目前 只有ListView控件实现了此接口. 下面演示如何为Products表实现分页功能.从工具箱中拖一个DataPager 控件到页面任何位置,指定其PageSize属性为3,表示每页显示3条记录, 单击智能提示标签,在弹出的DataPager任务窗口中提供了方法定义 DataPager显示的样式,选择编辑页导航字段可以让开发人员指定导航的 显示属性,如图所示.
GridView控件的列类型
说明 列字段类型 BoundField ButtonField CheckBoxField CommandField HyperLinkField ImageField TemplateField 显示数据源中某个字段的值.GridView控件的默认列类型. 为GridView控件中的每个项显示一个命令按钮.这使您可以创建一列自定义按钮控件,如"添加"按钮或"移除" 按钮. 为GridView控件中的每一项显示一个复选框.此列字段类型通常用于显示具有布尔值的字段. 显示用来执行选择,编辑或删除操作的预定义命令按钮. 将数据源中某个字段的值显示为超链接.此列字段类型使您可以将另一个字段绑定到超链接的URL. 为 GridView 控件中的每一项显示一个图像. 根据指定的模板为GridView控件中的每一项显示用户定义的内容.此列字段类型使您可以创建自定义的列字段.
15.1.5 使用GridView控件创建主从表
在本节中,将为GridViewShow.aspx添加主从功能,希望用户能选 中某个产品后,在另外一个GridView控件中显示出该产品的销售 详细信息.在页面上放置一个GridView控件,放置一个 SqlDataSource控件,使其打开Order Details数据表,设置一个 控件参数绑定到产品GridView1的SelectedValue属性,如图所示.
15.1 GridView控件
GridView是一个显示表格式数据的控件,这个控件也是服 务器控件中功能最强大,最实用的一个控件.GridView显示一个 二维表格式数据,每列表示一个字段,每行表示一条记录. GridView 控件支持下面的功能: 绑定至数据源控件,如SqlDataSource,ObjectDataSource或者是 LinqDataSource控件. 内置的排序功能. 内置了更新和删除记录的功能. 内置数据分页功能. 内置行选择功能. 提供以编程方式访问GridView对象模型以动态设置属性,处理事 件等. 可以指定多个键字段. 用于超链接列的多个数据字段. 可通过主题和样式进行自定义的外观.
15.1.8 为GridView控件添加统计信息
本示例将使用RowDataBound事件为GridView添加汇总信息, 本示例希望用户在选中某个产品后,除了显示与该产品相 关的订单信息外,还显示这些订单的汇总信息.
15.1.9 实现分页,排序效果
当在GridView控件的任务面板中选择"启用排序"项后, GridView控件的AllowSorting属性被设为True,如果设置 了SortExpression属性的列头将输出为一个链接.当用户 点击该链接时,将会自动进行排序.GridView自动记住每 次点击是升序和降序,多次点击会在升序和降序之间进行 切换.开发人员可以通过处理RowDataBound事件来自定义 排序的外观,也可以通过调用GridView的Sort方法来手动 进行排序. 还可以在PagerTempate模板中进行分页设计,另外, GridView提供了PageStyle属性,可以设置分页的样式,如 果要指定每页显示的记录数,可以设置GridView控件的 PageSize属性. GridView控件功能强大,很多功能在本章中不能一一涉及, 希望读者能够继续参考一些其他的资料.全方位的学好该 控件的用法能显著提高日后的应用程序开发.
15.1.3 使用模板列
一些情况下使用标准的列并不能满足显示的要求,比如希望为供应商和产 品分类显示名称,希望将产品名称和单位数量显示在一个字段中.此时可 以考虑使用模板列. 模板列让开发人员有机会去处理列显示的细节,解决预定义的列不能提供 的功能.GridView控件使用TemplateField来创建自定义的模板列,当用 户在GridView控件中使用模板列时,需要根据不同的GridView位置来编辑 不同的模板列,比如如果想自定义GridView控件的表头,可以编辑 HeaderTemplate模板,对于每一行可以编辑ItemTempate模板.
15.1.1 使用GridView控件
GridView呈现表格式的数据,默认情况下会将数据源中的数据输出一个 HTML表格,每条记录输出一个表格式,下面新建一个页面来演示如何使用 GridView控件. (1)新建一个名为GridViewDemo的网站,在该站点中添加一个 GridViewShow.aspx的页面,接下来添加一个SqlDataSource控件,指定其 绑定到Northwind数据库的Products数据表,声明代码如下所示: <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" SelectCommand="SELECT * FROM [Products]"></asp:SqlDataSource> (2)从工具箱的数据栏中拉一个GridView控件到设计视图,VS2008将生 成如下所示的声明代码: <asp:GridView ID="GridView1" runat="server"></asp:GridView>
GridView控件的模板列 说明 模板 AlternatingItemTemplate EditItemTemplate FooterTemplate HeaderTemplate InsertItemTemplate ItemTemplate 为交替项指定要显示的内容. 为处于编辑模式中的项指定要显示的内容. 为对象的脚注部分指定要显示的内容. 为标头部分指定要显示的内容. 为处于插入模式中的项指定要显示的内容.只有DetailsView控件支持该模板. 为TemplateField对象中的项指定要显示的内容.
第15章 数据绑定控件
在VS2008工具箱的数据栏中,提供了几个开发 应用程序的重量级的数据绑定控件.这几 个控件的功能强大,使用灵活,在应用系统开发 中的使用频率也是相当高.本章将详细的介绍 GridView,DetailsView,ListView和FormView这 几个控件,灵活掌握对这几个控件的使用,然后 综合本书以前的知识,相信读者将能够进行基本 的数据库应用程序的开发.
15.1.4 GridView控件的选择功能
GridView控件允许用户选择某一条记录,在GridViewShow.aspx的 GridView中,通过使用GridView的任务面板启用了选择功能, GridView控件会增加一个选择命令按钮.当在GridView控件中选 择一行时,可以通过GridView控件的SelectedRowStyle设置选中 的效果.可以使用属性面板也可以直接在代码中进行设置,下面 的代码将选择行的颜色设置为Aqua,字体设为粗体. <SelectedRowStyle BackColor="Aqua" FontBold="True" /> 运行时,只要单击选择按钮,则GridView会高亮显示选中的行, 如图所示.
15.2.1 ListView控件简介
ListView控件是一个相当灵活的数据绑定控件,该控件不具有默认的格式 呈现,所有的格式需要开发人员自由的设计来实现.由于完全依赖模板设 计,ListView控件提供了很多的模板以供完成设计.在ListView中,有两 个控件是必须的,一个是LayoutTemplate,一个是ItemTemplate.表列出 了ListView控件的11个模板及其详细的描述.
15.1.6 GridView控件事件
GridView控件提供了很多的事件,开发人员可以使用这些 事件定制GridView控件的外观和形为.为了便于理解 GridView控件的事件,这里将GridView控件中所有这些事 件发为三大类,分别控件呈现事件,编辑记录事件和选择, 排序分页事件. 控件呈现事件在GridView显示其数据行时触发,可以分为 如下几种: DataBinding:GridView控件绑定到数据源时立即触发. DataBound:GridView控件己经绑定到数据源后触发. RowCreated:当GridView中的行被创建后触发该事件. RowDataBound:当GridView中的每行绑定到数据后触发.
15.1.7 编程格式化特定行列值
在应用程序开发过程中,经常需要为特定的字段值显示不同的格 式,比如仓库系统的的库存低于安全库存,可能需要以红字高亮 显示这些库存记录,或者是产品成本价钱过高,决策层希望一目 了然的看到这些信息.此时需要按条件来格式化GridView控件的 显示,在GridView中,有两个事件可以完成这一需求: RowCreated事件和RowDataBound事件. 必须明白这两个控件的区别,RowCreated事件触发于GridViewRow 被创建之后,在数据绑定完成之前,而RowDataBound事件在 GridView绑定到数据源后触发.如果行没有被绑定到数据源将不 会触发RowDataBound事件,而RowCreated事件在任何时候,只要 具有PostBack时都会触发. RowCreated可以用来向行添加自定义内容,自定义格式. RowDataBound事件在数据绑定后,控件呈现之前触发,可以在该 事件中定义事件修改绑定到该行的数据的值,比如为布尔字段显 示特定ager控件