首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计数cfoutput内cfoutput的当前行

计数cfoutput内cfoutput的当前行
EN

Stack Overflow用户
提问于 2011-10-04 23:12:09
回答 1查看 2.1K关注 0票数 0

情况是这样的,我有一个表,其中显示了一些值,而且在另一个表中有一个cfoutput,因此当前的行数是分开计算的,不管怎样,我希望源码之后一切都会变得清晰:

代码语言:javascript
复制
<cfquery name="get_products" datasource="#dsn3#">
    SELECT P.PRODUCT_ID,P.PRODUCT_NAME,PS.MONEY,PR.PRICE,P.BRAND_ID,PS.PRICE,GSL.PRODUCT_STOCK,GSL.PURCHASE_ORDER_STOCK,GSL.SALEABLE_STOCK,P.PRODUCT_DETAIL2,P.BARCOD
    FROM PRODUCT P
        JOIN PRICE_STANDART PS ON P.PRODUCT_ID = PS.PRODUCT_ID
        JOIN PRICE PR ON P.PRODUCT_ID = PR.PRODUCT_ID
        JOIN #DSN2_ALIAS#.GET_STOCK_LAST GSL ON P.PRODUCT_ID = GSL.PRODUCT_ID
        <cfif isdefined('attributes.is_stock') and attributes.is_stock is 1>
            AND GSL.PRODUCT_STOCK > 0
        </cfif>
        <cfif isdefined('attributes.product_catid') and len(attributes.product_catid)>
            JOIN PRODUCT_CAT PC ON P.PRODUCT_CATID = PC.PRODUCT_CATID
        </cfif>
    WHERE PS.PURCHASESALES=1 AND PS.PRICESTANDART_STATUS=1 AND P.IS_SALES=1 AND P.IS_PURCHASE=1 AND P.IS_INTERNET=1 AND P.IS_EXTRANET=1
    AND PR.STARTDATE <= #now()# AND (PR.FINISHDATE >= #now()# OR PR.FINISHDATE IS NULL)

    GROUP BY P.PRODUCT_ID,PR.PRICE,P.PRODUCT_NAME,PS.MONEY,P.BRAND_ID,PS.PRICE,GSL.PRODUCT_STOCK,GSL.PURCHASE_ORDER_STOCK,GSL.SALEABLE_STOCK,P.PRODUCT_DETAIL2,P.BARCOD
    P.PRODUCT_ID, PR.PRICE DESC
</cfquery>

然后表:

代码语言:javascript
复制
<cfoutput query="get_products" startrow="#attributes.startrow#" maxrows="#attributes.maxrows#" group="product_id">
        <tr height="20" onMouseOver="this.className='color-light';" onMouseOut="this.className='color-row';" class="color-row"> 
            <td>
                <a href="/index.cfm?fuseaction=product.form_upd_product&pid=#product_id#" style="color:blue;" target="_blank">#left(product_name,50)#</a>
            </td>
            <td>#left(PRODUCT_DETAIL2,50)#</td>
            <td align="center"><cfif len(brand_list)>#get_brands.brand_name[listfind(brand_list,brand_id,',')]#</cfif></td>
            <td align="center">#PRODUCT_STOCK#</td>
            <td align="center">#saleable_stock#</td>
            <td align="center">#purchase_order_stock#</td>
            <cfoutput><td align="center">#tlformat(price,2)# <cfif currentrow eq 4>asd</cfif></td></cfoutput>
            <td align="center"><a href="javascript://" onclick="gizle_goster(abr#currentrow#);" style="font-weight:bold;">x #saleable_stock#</a></td>
            <td align="center">#MONEY#</td>
        </tr>
        <tr onMouseOver="this.className='color-light';" onMouseOut="this.className='color-row';" class="color-row" id="abr#currentrow#" style="display:none;">
            <td colspan="3"></td>
            <td colspan="3" style="color:blue;font-weight:bold;text-align:center;">#saleable_stock# x</td>
            <cfoutput>
                <td align="center" style="color:red;font-weight:bold;text-align:center;">#tlformat((saleable_stock*price),2)#</td>
                <cfset abr = tlformat((saleable_stock*price),2)>
            </cfoutput>
            <td align="center" colspan="2">#MONEY#</td>
        </tr>
    </cfoutput>

结果是:http://s008.radikal.ru/i303/1110/2a/031496096958.png

如您所见,写入"asd“仅显示在外部cfoutput的第一行,但显示在内部cfoutput的第4行。(一行有4个价格)我想要的就是在外部cfoutput的每一行中写入"asd“,并在内部行的第4行中写入”asd“。

感谢大家的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-04 23:36:27

在进行分组输出时,CFQUERY的CURRENTROW变量的行为与您想象的不同。

最快的解决方案是在分组输出中设置并递增一个新变量,如下所示:

代码语言:javascript
复制
<cfset iter = 1 />
<cfoutput><td align="center">#tlformat(price,2)# <cfif iter eq 4>asd</cfif></td><cfset iter++ /></cfoutput>

确保在任何新的分组输出开始时重置var (因此在第二个<TR>行中也要复制此代码)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7650093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档