【问题标题】:Formatting a table using cfquery and an array使用 cfquery 和数组格式化表
【发布时间】:2021-04-22 19:01:21
【问题描述】:

我编写了以下查询,它的功能完全符合我的计划:

<cfquery name="myquery" datasource="abc">
SELECT DISTINCT Right((Format([vDatum],"yyyy")),2) AS DDate
FROM tVCal RIGHT JOIN tVEvents ON tVCal.VItem = tVEvents.EvDate
</cfquery>

每次运行此查询时,它都会输出一系列与 1940 年到 2039 年之间的年份相对应的两位数字年份数字,这些数字在数据库中是可用的,例如: 00,04,15,28,42,56,58,75,89

然后我有一个从 (19)40 到 (20)39 以表格形式排列的所有年份数字的不变列表,第一个十年看起来像这样:

<tr><td>40</td><td>41</td><td>42</td><td>43</td><td>44</td><td>45</td><td>46</td><td>47</td><td>48</td><td>49</td>       
</tr>

每次显示此表并准备好文档时,我都需要一个 CF 或 jQuery 函数,它将所有年份数字格式化为红色,这些数字也包含在原始查询的输出中。

十年前我可能自己就能写这篇文章,但今年我将 80 岁,每当我尝试新事物时,我都会头晕目眩。如果我在这里错了地方,我将不胜感激关于去哪里的提示。 弗兰克

【问题讨论】:

    标签: jquery coldfusion


    【解决方案1】:

    你可以试试这样的:

    <cfoutput>
    <table>
    <tr>
    <cfloop list = "#YourListOfNumbers#" index = "number">
    <cfset ThisColour = ListFind(ValueList(myquery,DDate), number) ? "red" : "black">
        
    <td style = "Color:#ThisColour#">#number#</td>
        
    </cfloop>
    </tr>
    </table>
    </cfoutput>
    

    您需要做一些额外的工作才能获得超过一排,但这不是问题的一部分。

    此处提供了此逻辑的示例 ==> https://trycf.com/gist/dcedc5c1264a4ce18a91ce496a8c0405/lucee5?theme=monokai

    【讨论】:

    • 我刚刚看到你的建议,Dan,因为欧洲的时区不同。由于我有 100 个列表项,我将不得不决定是为 10 个表行创建一个内部循环还是谨慎地对所有 100 行进行编码。所以在 cmets 中使用“thanks”这个词皱眉,所以我只会说“danke schön”!
    • 当我在我的页面中运行你的代码时,CF 说我没有 的结束标记。一个赤裸裸的谎言,就像许多愚蠢的 CF 错误信息一样。我会继续破解...
    • 这是一种将 100 个数字放入 10 行的方法。 trycf.com/gist/b32727037961d3c2a30bc5c52c8195f6/…
    • 这对我来说效果很好,我只需要在数字 0 - 9 中添加前导零。
    • "...need to add leading zeroes...." 为什么不直接从 1940 循环到 2039 并在输出中格式化年份编号? trycf.com/gist/08a28ddc8aa8f384ce00eb4d962f6e06/… "..no closing tag for &lt;cfscript&gt;..." 顺便说一句,在这种情况下混合 cfscript 和 cfml 语法没有任何好处。您可能会发现坚持一种风格更容易。
    猜你喜欢
    • 2016-07-10
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多