ColdFusion - cfoutput可以列出表中的所有列而不显式列出列名吗?

时间:2015-01-30 14:40:41

标签: sql coldfusion coldfusion-10 cfml

cfoutput是否有办法从表格中选择所有列并使用HTML表格显示在网页上?我有一个包含大量列的数据库表,我不想在cfm网页的cfquerycfoutput部分列出每个列名。

示例:假设Table1有26列 - A,B,C,D,E....X,Y,Z。我希望在构建HTML表时在cfoutput中指定这些列名明确性。而是更喜欢动态构建表,以便Table1中的所有列都显示为表。

<CFQUERY NAME="query1" DATASOURCE="abcd">
select a,b,c,....,x,y,x from table1
</CFQUERY>

现在在网页的表格部分:

<TABLE>
                    <TR> 
                        <TH>A</TH> 
                        <TH>B</TH>
                        <TH>..</TH>
                        <TH>Y</TH>
                        <TH>Z</TH>
                    </TR>   

                    <CFOUTPUT query="query1">
                    <TR align="center">
                        <TD>#a#</TD>
                        <TD>#b#</TD>
                        <TD>#...#</TD>
                        <TD>#y#</TD>                        
                        <TD>#z#</TD>                        
                    </TR>
                    </CFOUTPUT>
                </TABLE>

我的实际表格中会有相当多的列。可以很容易地动态构建表而不是手动列出它。任何建议,非常感谢!

1 个答案:

答案 0 :(得分:1)

这是另一种方式。

fields = "Field1,Field2,etc";
columnHeaders = "Header 1,Header 2,etc"'

<cfquery name = "yourQuery">
select #fields#
etc
</cfquery>

<tr><cfoutput><cfloop list = columnHeaders index = "header">
<th>#header#</th>
</cfloop></cfoutput></tr>
<cfoutput query = "yourQuery">
<tr>
<cfloop list = fields index = "field">
<td>#yourQuery[field][currentrow]#</td>
</cfloop>
</tr>
</cfoutput>

如果您需要执行格式化日期,右对齐数字等操作,则会变得有点复杂。