首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于格式化数字的cfgridcolumn掩码

用于格式化数字的cfgridcolumn掩码
EN

Stack Overflow用户
提问于 2013-01-09 14:51:03
回答 2查看 1K关注 0票数 1

根据文档,我应该能够使用掩码属性来格式化我的列:

代码语言:javascript
复制
<cfgridcolumn name="salary" type="numeric" mask="$999,999">

我有一个工资金额,我想显示为

代码语言:javascript
复制
$100,000
 $80,000
  $5,000

你知道为什么它不工作吗?

下面是测试的完整代码片段。

代码语言:javascript
复制
<cfscript>
        rs = QueryNew('salary', 'integer');
        QueryAddRow(rs,3);
        QuerySetCell(rs, 'salary', '100000', 1);
        QuerySetCell(rs, 'salary', '80000', 2);
        QuerySetCell(rs, 'salary', '5000', 3);
</cfscript>

<cfform>
    <cfgrid format="html" name="demo" query="rs">
        <cfgridcolumn name="salary" type="numeric" mask="$999,999">
    </cfgrid>
</cfform>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-09 22:12:54

我需要为@Henry提供道具,因为我找到了here并将其应用于您的案例。我以前没有使用过它,但我测试了它,它确实可以工作(使用CF9)。请参阅我找到的this other参考资料。有趣的东西。不管怎样..。

对于您的问题,请尝试以下代码:

代码语言:javascript
复制
<html>
    <head><title>Test</title></head>
<body>
<cfsavecontent variable="formatGridInit">
<script language="javaScript">
formatgrid = function() {
    var myFormatter = Ext.util.Format.numberRenderer('$000,000');
    var mygrid = ColdFusion.Grid.getGridObject('demo');
    var cm = mygrid.getColumnModel();
    cm.setRenderer(0, myFormatter);
    mygrid.reconfigure(mygrid.getStore(),cm);
};
</script>
</cfsavecontent>
<cfhtmlhead text="#formatGridInit#">
<cfset ajaxOnLoad("formatgrid")>

<cfscript>
        rs = QueryNew('salary', 'integer');
        QueryAddRow(rs,3);
        QuerySetCell(rs, 'salary', '100000', 1);
        QuerySetCell(rs, 'salary', '80000', 2);
        QuerySetCell(rs, 'salary', '5000', 3);
</cfscript>

<cfform>
    <cfgrid format="html" name="demo" query="rs">
        <cfgridcolumn name="salary" type="numeric">
    </cfgrid>
</cfform>
</body>
</html>

备注-确保你的超文本标记语言有<head></head>,这样<cfhtmlhead>才能工作。

注释-此代码var mygrid = ColdFusion.Grid.getGridObject('demo');中的网格名称必须与网格的名称相匹配。

票数 2
EN

Stack Overflow用户

发布于 2013-01-09 15:19:53

显然,支持您使用的掩码的"currency“类型仅在format="flash|applet”模式下可用。

最简单的方法是在查询中的数据命中CFGRID之前格式化数据。或者,您可以使用ColdFusion重新格式化这些单元格:

代码语言:javascript
复制
<cfscript>
        rs = QueryNew('salary', 'varchar');
        QueryAddRow(rs,3);
        QuerySetCell(rs, 'salary', '100000', 1);
        QuerySetCell(rs, 'salary', '80000', 2);
        QuerySetCell(rs, 'salary', '5000', 3);
</cfscript>

<!--- Loop Over Query and Reformat Salary --->
<cfloop query="rs" startrow="1">
    <cfscript>
        QuerySetCell(rs, 'salary', dollarFormat(salary), currentrow);
    </cfscript>
</cfloop>

<cfform>
    <cfgrid format="html" name="demo" query="rs">
        <cfgridcolumn name="salary">
    </cfgrid>
</cfform>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14229782

复制
相关文章

相似问题

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