-->ColdFusion 初级教程-->在表格中显示查询结果

ColdFusion

后页 前页
目录
北极星书库
在表格中显示查询结果


当查询返回的记录数较少时,用简单的HTML文本显示就够了。但当记录很多时,你需要更有条理的显示。CFOUTPUT标签可以包含HTML代码,因此你可以使用标准的HTML表格标签,动态地生成表格。


CFML 表格


CFML提供了两个表格标签,CFTABLECFCOL,用来以表格的形式显示查询结果。这种格式使用HTML<PRE>标签精确地控制显示内容的宽度和对齐方式。如下例所示:


<CFTABLE QUERY="Messages" MAXROWS=10>


<CFCOL HEADER="Subject" WIDTH=25


TEXT="<I>#Subject#</I>">


<CFCOL HEADER="User Name" WIDTH=15


TEXT="#UserName#">


<CFCOL HEADER="Date" WIDTH=15


ALIGN=RIGHT


TEXT="#DateFormat(DateSubmitted)#">


</CFTABLE>


这段程序建立了一个三列的表格,通过CFCOL标签的HEADER属性为三个列分别指定了标题“Subject”,“User Name”,和“Date”。该表格的数据来自名为Messages的查询,最多显示10条记录。显示的内容由TEXT属性所给的HTML标签和动态参数决定。


CFCOL中的双引号和井号


ColdFusionCFCOLTEXT属性中用双引号和井号作为分隔符。因此当用到这两个符号本身时,要用两个连续的双引号来代替双引号,用两个连续的井号来代替井号。


例如,要显示一个文档列表,为每个文档提供一个超链接,你必须在TEXT属性中使用超链接标签(该标签的HREF属性要用双引号作为分界符)。因此必须使用如下语法:


TEXT="<A HREF=""/documents/#DocFile#"">#DocName#</A>"


HTML表格


虽然CFTABLE标签产生的预定义格式表格是有效的,但HTML表格具有更大的灵活性。为了使这种转换更容易,CFTABLE提供了另一个属性HTMLTABLE。这个属性将CFTABLE提供为一个HTML表格,而不是预定义格式的表格。使用HTMLTABLE属性会使CFTABLECFCOL的某些属性具有另外的含义:


·CFTABLEHEADLINES属性和COLSPACING属性将被忽略。


·CFCOL的WIDTH属性被解释为占可用屏幕宽度的百分比,而不是字符数。


注意:使用HTML表格不是一定要通过CFTABLE的HTMLTABLE属性,你可以用CFOUTPUT直接建立HTML表格。


记录细节的动态显示


显示查询结果的最常用的方法是用表格,如CFTABLE,或其他更简洁的列表。用这种列表可以快速浏览记录集,但显示的信息量有限。解决这一问题的方法是以简洁的方式显示记录,然后为每个记录创建一个超链接,链接到另一个提供详细信息的网页。


建立到记录细节的链接


建立到记录细节的链接包括如下步骤,假设已经有一个文件显示了记录摘要列表。


  1. 从记录摘要中选择一个关键词作为可点击的链接,如公司名。
  2. 将所选的关键词扩在超链接标签(<A>)中,链接到一个显示细节信息的文件。在URL中应传递一个唯一的记录标识,这样被链接的文件才知道要显示的是哪一条记录。
  3. 建立一个用于显示记录细节的CFM文件。

例子:记录细节信息


假设你要显示一个公司列表,让用户点击一个公司名来获得关于该公司的详细信息。再假设在数据库中每个公司用一个唯一的Company_ID来标识,而文件compinfo.cfm可以显示给定Company_ID的公司的详细信息。在这种情况下,使用如下的语法:


<CFOUTPUT Query="CompanySearch">


<A HREF="compinfo.cfm?Company_ID=#Company_ID#">


#CompName#</A><BR>


#ContactPerson# (#ContactPhone#) <BR>


</CFOUTPUT>


公司名显示为一个超链接,它将Company_ID作为一个URL参数,激活文件compinfo.cfm。由该文件显示相应公司的详细信息。使用这种技术,实现记录细节的动态显示的通用形式如下(注意HREF属性应处在单独的一行中):


<A HREF="TemplateFile?Record_ID=#Record_ID_Data#"># RecordName#</A>


这里TemplateFile是实现记录细节显示的文件。该文件用Record_ID_Data(通过URL参数Record_ID传递)确定要显示哪一条记录。用户点击RecordName来激活该文件。


CFTABLE中嵌人细节链接


你也可以在CFCOL标签的TEXT属性中嵌人超链接。由于TEXT属性用双引号作为分界符,超链接的HREF属性也用双引号作为分界符,要注意引号的正确使用。下面是这种技巧的通用形式:


<A HREF="" TemplateFile? Record_ID=# Record_ID_Data#"">#RecordName#</A>


注意在HREF属性中用两个连续的双引号表示一个双引号。如果上一个例子改为使用TEXT属性在表格中嵌人超链接,其语法应为:


TEXT="<A HREF=""compinfo.cfm?Company_ID=#Company_ID#"">#CompName#</A>"


再次强调,整个TEXT属性要写在同一行中。


后页
前页
目录
北极星书库