Chinaopub.com 第105与客户端经据309 下载 The ASPToday logo, <IMG SRC-'logos/ASPTodayLogo gif'> 这是TDC的源文件,并且包含两个字段,第一个是说明,第二个是显示某些图像的 HTML文本。现在把它和一个HTML表格进行绑定 <TABLE ID="tblData' DATASRC='#dsoLogOS'> <TR> <TD>Description</TD> <TD>Image</TD> </ THEAD> <TBODY> <TD><SPAN DATAFLD=Description"></SPAN></TT <TD><SPAN DATAFLD='Image></SPAN></TD> </TR> </TBODY> </TABLE> 这里不要为数据绑定担心,本例介绍的是表格数据绑定,下面将详细讨论这方 面的内容。在这里使用是因为能较好地说明格式化数据 在浏览器中打开它,将会看到图10-3所示的结果 TDCD研MtE Data Formatting in bound data Image The main Wrox logo <IMG SRC=looos/roLogo gif> The wrox Conferences logo <IMG SRC-logos/roxConferenceslooo gif> The ASPToday logo < MG SRC-logos/ASPTodayLogo gf> 图10-3绑定数据的格式化 可以看到数据文件中的三行数据全部显示在浏览器中,但是HTML作为文本显示。为了 见到HTML格式的数据,需要使用属性 DATAFORMATAS。 <TD><SPAN DATAFLD=Descripti SPAN></TD> <TD><SPAN DATAFLD="Image. DATAFORMATAS="HIML></SPAN></TD> 此时在浏览器中打开它,会得到一个效果 Favorite 较好的HTML页面,如图10-4所示 将第二个字段格式化为HTML文档,这 Data Formatting in bound data 事实说明了字段中任何HTML标记都可以解释 Description mage 成为HTML文档。因此,IMG标记变为真正的 The main Wrox logo 图像,而源文件中并不包含任何IMG标记,只 The Wrox Conferences logo Awronconferences 有绑定的数据。 The ASPToday logo ASPToday 可以为任一数据源中的字段使用这种格式, 任何HTML标记都会被解释。这对于那些允许 19 cx PTss-En0esona A:Pa0(s161002610 aDore 用户输入格式化文本的情形是比较有利的。 图10-4绑定数据HTML格式化
这是 T D C的源文件,并且包含两个字段,第一个是说明,第二个是显示某些图像的 H T M L文本。现在把它和一个H T M L表格进行绑定。 这里不要为数据绑定担心,本例介绍的是表格数据绑定,下面将详细讨论这方 面的内容。在这里使用是因为能较好地说明格式化数据。 在浏览器中打开它,将会看到图 1 0 - 3所示的结果。 图10-3 绑定数据的格式化 可以看到数据文件中的三行数据全部显示在浏览器中,但是 H T M L作为文本显示。为了 见到H T M L格式的数据,需要使用属性D ATA F O R M ATA S。 此时在浏览器中打开它,会得到一个效果 较好的H T M L页面,如图1 0 - 4所示。 将第二个字段格式化为 H T M L文档,这一 事实说明了字段中任何 H T M L标记都可以解释 成为H T M L文档。因此, I M G标记变为真正的 图像,而源文件中并不包含任何 I M G标记,只 有绑定的数据。 可以为任一数据源中的字段使用这种格式, 任何H T M L标记都会被解释。这对于那些允许 用户输入格式化文本的情形是比较有利的。 第1 0章 A S P与客户端数据计计309 下载 图10-4 绑定数据H T M L格式化
310A5p3高程 Chinapub.coM 下载 支持数据绑定的元素 在上面的例子,使用了<SPAN>、<DIV>和< TABLE>标记来绑定数据,但并不是所 有的HTML元素都支持数据绑定。表10-5详细列举了这些元素,表中列是 HIML元素定义支持数据绑定的元素 绑定属性定义绑定到数据的HTML元素属性。例如上面的DIV标记,绑定的数据就放在 innerText属性中。如果使用A标记,并将其绑定到一个字段,那么数据将会放在href属 性中 可否更新数据指出元素中的绑定数据是否能被更新。 可否表格绑定指出该元素是否允许绑定子元素。稍后会讨论这个内容。 可否作为HTML显示指出数据是否能格式化为HTML文档 表10-5支持数据绑定的HTML元 可否作为 HIML元素 绑定属性 可否更 可否表 新数据 格绑定 HTML显示 不可 不可 APPLET PARAM 不可 BUTTON innerText和 innerHTML 不可 可以 ner Text和 innerHTML 不可 不可 可以 FRAME IFRAME 不可 INPUT checked 可以 不可 不可 TYPE=CHCKBOX INPUT 可以 不可 TYPE=HIDDEN INPUT 可以 TYPE=LABEL INPUT 不可 TYPEPASS WORD INPUT checked 可以 TYPE=RADIO INPUT 可以 不可 TYPE=TEXT LABEL innerText和 innerHTML ner Text和 innerHTML 不可 MARQUEE nner Text和 innerHTML OBJECT param SELECT 择的< OPTION>元素的文本 可以 不可 不可 SPAN Text和 innerHTML TABLE 无 可以 TEXTAREA valu 2.单个记录绑定 单个记录绑定用于只显示单行数据的情况。例如,考虑下面的代码 工D <SPAN DATASRC='#asoData'DATAFLD=auid></SPAN><BR> First Name: <SPAN DATASRC-#asoData'DATAFLD=au_fname'></SPAN><BR> Last Name: <SPAN DATASRC=#dsoData DATAFLD='aulname'></SPAN><BR> <SPAN DATASRC*'#dsoData'DATAFLD=phone></SPAN><BR> SPAN DATASRC=*asoDataDATAFLD='address"></SPAN><BR :SPAN DATASRC='tasoDataDATAFLD=city"></SPAN><BR> SPAN DATASRC-#asoData DATAFLD='state></SPAN> zip:< SPAN DATASRO=# isoData· DATAFLD=”zip”s</sPAN><BR <SPAN DATASRCe'#asoData DATAFLD="contract></SPAN><BR>
1. 支持数据绑定的元素 在上面的例子,使用了< S PA N>、<D I V>和<TA B L E>标记来绑定数据,但并不是所 有的H T M L元素都支持数据绑定。表1 0 - 5详细列举了这些元素,表中列是: • HTML元素定义支持数据绑定的元素。 • 绑定属性定义绑定到数据的 H T M L元素属性。例如上面的 D I V标记,绑定的数据就放在 i n n e r Te x t属性中。如果使用 A标记,并将其绑定到一个字段,那么数据将会放在 h r e f属 性中。 • 可否更新数据指出元素中的绑定数据是否能被更新。 • 可否表格绑定指出该元素是否允许绑定子元素。稍后会讨论这个内容。 • 可否作为H T M L显示指出数据是否能格式化为 H T M L文档。 表10-5 支持数据绑定的H T M L元素 HTML 元素 绑定属性 可否更 可否表 可否作为 新数据 格绑定 H T M L显示 A h r e f 不可 不可 不可 A P P L E T PA R A M 可以 不可 不可 B U T TO N i n n e r Te x t和i n n e r H T M L 不可 不可 可以 D I V i n n e r Te x t和i n n e r H T M L 不可 不可 可以 F R A M E s r c 不可 不可 不可 I F R A M E s r c 不可 不可 不可 I M G s r c 不可 不可 不可 I N P U T c h e c k e d 可以 不可 不可 TYPE=CHCKBOX INPUT v a l u e 可以 不可 不可 TYPE=HIDDEN INPUT v a l u e 可以 不可 不可 TYPE=LABEL INPUT v a l u e 可以 不可 不可 T Y P E = PASSWORD INPUT c h e c k e d 可以 不可 不可 TYPE=RADIO INPUT v a l u e 可以 不可 不可 TYPE=TEXT LABEL i n n e r Te x t和i n n e r H T M L 不可 不可 可以 L E G E N D i n n e r Te x t和i n n e r H T M L 不可 不可 不可 M A R Q U E E i n n e r Te x t和i n n e r H T M L 不可 不可 可以 O B J E C T p a r a m 可以 不可 不可 S E L E C T 选择的< O P T I O N >元素的文本 可以 不可 不可 S PA N i n n e r Te x t和i n n e r H T M L 不可 不可 可以 TA B L E 无 不可 可以 不可 T E X TA R E A v a l u e 可以 不可 不可 2. 单个记录绑定 单个记录绑定用于只显示单行数据的情况。例如,考虑下面的代码: 310计计ASP 3 高级编程 下载
第10章ASP与客户端数据 311 下载 使用单个记录绑定时,每一个将被绑定的m+ HTML元素都要确定数据源( DATASRC)和绑定 的字段 DATAFLD) Single Record Data Binding with RDS 以上数据绑定的结果如图10-5所示 D:722-1176 ame:oreon 作为一个结果来说,这已经满足要求了 ne:4084967223 但由于在HTML文档中忽略了空格,所以数据 排列得不整齐。数据绑定使我们易于得到数据 但看上去不太美观。一个好方法是使用表格来 o1999 Mhox Prms-BomgoniASP12(st: 1-061002-61-0) 对齐数据 <TABLE ID=tblDat 图10-5单个记录绑定的结果 <TR><TD>ID: </TD> <TD><SPAN DATASRC='#dsoData'DATAFLD=au id ></SPAN></TD></TR> <TR><TD>First Name: </TD <TD><SPAN DATASRC='#dsoData DATAFLD=au_ fname"></SPAN></TD></TR> <TR><TDSLast Na /TD> <TD><SPAN DATASRC='#asoData DATAFLD=aulname'></SPAN></TD></TR> <TR><TD>Phone:</TD> <TD><SPAN DATASRC=#dsoData'DATAFLD=phone></SPAN></TD></TR> <TR><TD>Address: </TD> <TD><SPAN DATASRC-*#asoData' DATAFLDs'address ></SPAN></TD></TR> <TR><TD>city:</TD> <TD><SPAN DATASRC=*#dsoDataDATAFLD='city" ></SPAN></TD></TR> <TR><TD>State:</TD> : TD><SPAN DATASRC=#asoData' DATAFLD='state></SPAN></TD></TR> <TR><TD>Zip: </TD> <TD><SPAN DATASRC=*#asoDataDATAFLD=zip.></SPAN></TD></TR> <TR><TD>Contact: </TD> <TD><SPAN DATASRC="#asoData'DATAFLD=contract ></SPAN></TD></ 这个HTML文档虽然不容易阅读,但却提供了一个较好的显示结果,如图10-6所示。 Single Record Data Binding with RDs 172321176 Last Name white duress: 10932 Blope Rd 94025 Contat Tru w地m·dna经①m10 图10-6单个记录绑定的表格显示结果 注意,这个例子只显示了使用SPAN元素来存放数据。如果想编辑数据,那么可以使用 IPUT元素来实现。例如: <TABLE ID='tblData <TR><TD>ID:</TD> INPUT TYPE.TEXT'DATASRC=#dsoData'DATAFLD-au_id></INPUT>
使用单个记录绑定时,每一个将被绑定的 H T M L元素都要确定数据源 ( D ATA S R C )和绑定 的字段( D ATA F L D )。 以上数据绑定的结果如图1 0 - 5所示。 作为一个结果来说,这已经满足要求了, 但由于在H T M L文档中忽略了空格,所以数据 排列得不整齐。数据绑定使我们易于得到数据, 但看上去不太美观。一个好方法是使用表格来 对齐数据。 这个H T M L文档虽然不容易阅读,但却提供了一个较好的显示结果,如图 1 0 - 6所示。 图10-6 单个记录绑定的表格显示结果 注意,这个例子只显示了使用 S PA N元素来存放数据。如果想编辑数据,那么可以使用 I N P U T元素来实现。例如: 第1 0章 A S P与客户端数据计计311 下载 图10-5 单个记录绑定的结果
312 ASP3高级编程 Chinapub.com 下载 </TD> Single Record Data Binding with RDS </TABLE> 这里使用了一个TEXT类型的 INPUT元素 Last Name: M Phone: F0e496-7223 注意,数据绑定几乎是相同的,仅仅是HTML Adress: 1092 BiggeRd 元素不同。结果如图10-7所示。 数据导航 Contact Tnu 除非能得到其他记录,否则只显示单条记 录并不理想。幸运的是数据控件有一个 (1-0 Recordset属性,它是实际的含有数据的ADO 记录集。回顾第8章,应该记得记录集有移动 图10-7单个记录绑定的编辑界面 记录的方法 Movefirst · Move Next · Moveprevious 图10-8导航按钮 · Movelast 举一个例子,假定想在HTML页面中增加一些按钮以获得记录导航的能力,如图10-8所 可以用如下代码创建按钮: < BUTTON ID=" cmdFirst· TITLE=· First record ONCLICK="dsoData recordset MoveFirst()> I< </BUTTON> <BUTTON ID='cmdPrevious TITLE=Previous Record NCLICK-if (ldsoData recordset BOF) dsoData recordset MovePrevious(.> nbsp;< </BUTTON> D='cmdNext TITLE=Next Record CK"if (!dsoData recordset EOF) dsoData recordset MoveNext().> >i </BUTToN <BUTTO ast·T工TLE="Last 这些代码仅仅利用了记录集中移动记录的方法。移到第一条和最后一条记录实现起来相 当容易。只需记住数据控件有一个 Recordset属性,由于该属性是一个对象,所以有其自己的 方法。因此,代码可以写为: dsoData recordset MoveFirst() 以上代码只是简单地调用数据控件管理的记录集的 Move first方法 移到上一条和下一条记录的代码看上去有一点技巧,但也很简单 if (! asoData recordset BOF) dsoData recordset Move Previous( 以上是向后移动记录的方法,只需在执行 Move Previous方法之前,判断一下记录集的 BOF属性,以确定当前记录不在记录集的开始位置
这里使用了一个T E X T类型的I N P U T元素。 注意,数据绑定几乎是相同的,仅仅是 H T M L 元素不同。结果如图1 0 - 7所示。 数据导航 除非能得到其他记录,否则只显示单条记 录 并 不 理 想 。 幸 运 的 是 数 据 控 件 有 一 个 R e c o r d s e t属性,它是实际的含有数据的 A D O 记录集。回顾第 8章,应该记得记录集有移动 记录的方法: • MoveFirst。 • MoveNext。 • MovePrevious。 • MoveLast。 举一个例子,假定想在 H T M L页面中增加一些按钮以获得记录导航的能力,如图 1 0 - 8所 示。 可以用如下代码创建按钮: 这些代码仅仅利用了记录集中移动记录的方法。移到第一条和最后一条记录实现起来相 当容易。只需记住数据控件有一个 R e c o r d s e t属性,由于该属性是一个对象,所以有其自己的 方法。因此,代码可以写为: 以上代码只是简单地调用数据控件管理的记录集的 M o v e F i r s t方法。 移到上一条和下一条记录的代码看上去有一点技巧,但也很简单。 以上是向后移动记录的方法,只需在执行 M o v e P r e v i o u s方法之前,判断一下记录集的 B O F属性,以确定当前记录不在记录集的开始位置。 312计计ASP 3 高级编程 下载 图10-7 单个记录绑定的编辑界面 图10-8 导航按钮