在对象表示法中使用变量列名称

时间:2015-11-18 00:09:07

标签: coldfusion coldfusion-9

我正在编写一个函数来生成HTML列,而且我在查询中使用变量列名的语法有些麻烦。

takeWhile

我收到以下错误:

<cffunction name="generateColumns" output=True> 
    <cfargument name="query">
    <cfargument name="numberOfColumns">
    <cfargument name="columnName">
    <cfargument name="linkVariable">
    <cfset html = ''>
    <cfset itemsPerColumn = Ceiling(query.recordCount/3)>
    <!--- Loop through each column --->
    <cfloop from="1" to="#numberOfColumns#" index="outerIndex">
        <cfset html = html & '<ul class="icf_nav-iblock">'>
        <!--- Loop through the inner items --->
        <cfloop from="1" to="#itemsPerColumn#" index="innerIndex">
            <cfset totalIndex = ((outerIndex - 1) * itemsPerColumn) + innerIndex>
            <cfset link = createRegressiveLink("#linkVariable#",query["#columnName#"][totalIndex])>
            <cfset html = html & '<li data-id="' & query["#columnName#"][totalIndex] & '">'>
            <cfset html = html & '<a href="' & link & '" class="icf_btn_small">'>
            <cfset html = html & query["#columnName#"][totalIndex]>
            <cfset html = html & '</a>'>
            <cfset html = html & '</li>'>
        </cfloop>
        <cfset html = html & '</ul>'>
    </cfloop>
    <cfreturn html>
</cffunction>

我试过了

[Table (rows 10 columns VCHRMAKE): [VCHRMAKE: coldfusion.sql.QueryColumn@1d3e7178] ] is not indexable by columnName

我得到同样的错误。

1 个答案:

答案 0 :(得分:0)

原来我在调用函数时犯了一个愚蠢的错误。我传递了“columnName”字符串作为列的名称。结果查询[columnName] [totalIndex]是正确的语法。