神奇的数据捆绑技术
网络与通信
任晓磊
在ASP编程中,经常需要在HTML表格内显示Recordset,而HTML和ASP代码的交错编写,使ASP编程从创作的乐趣变为沉重的负担。这里,给你介绍一种新技术──数据捆绑,可以帮你解决这个问题。
本文以一个新闻列表程序为例,对新、旧技术进行比较。
一、传统的显示方式
以前,为了在表格内显示这个ADOR.Recordset的内容,我们需要如下代码段:
<%'打开数据库%>
新闻标题 |
内容提要 |
日期 |
<%Do%>
<%=recordset("Title")%> |
<%=recordset("Content")%> |
<%=recordset("Date")%> |
<%
recordset.MoveNext
Loop until recordset.Eof
%>
这种方式,编程十分繁琐,并且,整个表格要在所有代码执行完毕后才在浏览器中显示,等待时间较长。并且,将来改变页面样式时,还要特别小心地避免把ASP代码错误地删除或改变。
二、数据捆绑技术
数据捆绑技术可使用在4.0以上版本的IE浏览器中,网页制作者可以灵活地改变页面风格而无需担心破坏数据显示代码,因为数据和页面是分离的,相关代码也很少。只要简单地设置
标签的属性,就可以把一个数据源和HTML表格捆绑在一起。当数据更新时,只刷新中间显示数据的部分,而页面的其他部分不变,就好像没有刷新一样,显示效果更加好;因为只下载了数据,网页的其他部分没有重复下载,浏览速度更快。如果灵活使用,还可以实现无刷新搜索和分页等功能。
目前随IE浏览器发行的数据源主要有两种:XML数据岛和TDC控件。我们以XML数据岛为例,使用数据捆绑技术实现上面提到的新闻列表程序。
1.XML数据岛
在HTML中,可以加入标签,从而在HTML内部嵌入XML格式的数据,或者引用外部的XML格式的文件。
比如一个新闻系统的XML标签可能是这样:
标题1
内容1
日期1
标题2
内容2
日期2
标题3
内容3
日期3
……
在这些XML数据中,表示了XML文档的开始,并且指定了数据的编码方式。如果不指定,默认值UTF-8将导致中文无法正常显示。和是XML的根元素,没有什么意义,仅仅表示数据的开始和结束。在和之间,每一个都是一条记录。通过设置标签的ID属性,可以通过脚本访问这些数据,也可以它与捆绑在一起。
的另外一种使用方式:引用外部XML格式文件的格式是这样的:
同样,这种格式的标签也可以设置ID属性,并且外部文件只要在格式上符合XML标准即可,而扩展名不一定非要是XML。
2.
标签的属性设置
有一个DataSrc属性用以指定数据源。比如,有一个名为:XMLDSO1的XML数据岛作为数据源,的写法就是:
注意,要在引用的数据源名称前加#号。
规范的有三个部分:、和。在数据捆绑技术中,通常把表头和表尾分别写在和中,在其中写一些表格标题之类的文字。而可以对数据源提供的数据进行循环显示,所以要把显示数据的部分放在中,只需要编辑一行关于表格显示的HTML代码,就可以实现所有数据统一格式的显示。但是,| 标签不能与数据源绑在一起,所以需要在 | 里加一个可以捆绑的标签作为数据的容器。例如:
这就是一个完整的显示数据的表格代码。怎么样?比HTML和ASP混杂在一起的代码要简单明了得多吧?
3.数据源的实现
上面的代码将一个HTML表格与一个名为XMLDSO1的数据源捆绑在一起。上面已经提到,XML数据岛引用的外部XML文件只要在格式上符合XML标准即可,扩展名不一定是XML。所以,我们可以通过ASP产生XML格式的输出,然后通过HTML的标签与表格捆绑在一起:
在search.asp中输出XML格式的数据,前面的HTML就可以自动显示数据了。有几点要注意的地方:XML的标签是区分大小写的!并且所有的标签都要关闭,即使用“/”开头的标签表示关闭,输出时一定要注意匹配;ASP默认的Content-Type是text/html,在这里需要通过Response.ContentType="text/xml"来设置一下,使浏览器把输出结果当作XML来处理。
示例代码:
在后台提供数据的search.asp文件:
<%
'打开数据库,取得记录集
Response.ContentType="text/xml"
outputXML=""
Do
outputXML=outputXML &""
outputXML=outputXML &""& recordset("Title") &""
outputXML=outputXML &""& recordset("content") &""
outputXML=outputXML &""& recordset("Date") &""
outputXML=outputXML &""
rs.movenext
loop until rs.eof
outputXML=outputXML &""
Response.Write outputXML
%>
在前台设置数据显示样式的list.html文件:
以上代码通过修改,还可以实现搜索功能,只要把要搜索的内容传给search.asp,使ASP程序只输出搜索结果即可。
怎么样?还想旧的混合代码方式吗?还不快用数据捆绑技术美化你的网页。
|