Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs cfgridcolumn掩码用于格式化数字_Extjs_Coldfusion_Cfgrid - Fatal编程技术网

Extjs cfgridcolumn掩码用于格式化数字

Extjs cfgridcolumn掩码用于格式化数字,extjs,coldfusion,cfgrid,Extjs,Coldfusion,Cfgrid,根据文档,我应该能够使用mask属性格式化我的列: <cfgridcolumn name="salary" type="numeric" mask="$999,999"> 你知道为什么它不起作用吗 下面是测试的完整代码snipit <cfscript> rs = QueryNew('salary', 'integer'); QueryAddRow(rs,3); QuerySetCell(rs, 'salary', '100

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

<cfgridcolumn name="salary" type="numeric" mask="$999,999">
你知道为什么它不起作用吗

下面是测试的完整代码snipit

<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>

rs=QueryNew('salary','integer');
QueryAddRow(rs,3);
QuerySetCell(卢比,'工资','100000',1);
QuerySetCell(卢比,'工资','80000',2);
QuerySetCell(卢比,'工资','5000',3);
显然,支持您使用的掩码的“货币”类型仅在format=“flash | applet”模式下可用

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

<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>

rs=QueryNew('salary','varchar');
QueryAddRow(rs,3);
QuerySetCell(卢比,'工资','100000',1);
QuerySetCell(卢比,'工资','80000',2);
QuerySetCell(卢比,'工资','5000',3);
查询单元格(rs,“薪资”,美元格式(薪资),当前行);

我需要向@Henry推荐我找到并应用于您案例的答案。我以前没有使用过这个,但是我测试了它,它确实有效(使用CF9)。请参阅我找到的参考资料。有趣的东西。无论如何

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

<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>

试验
formatgrid=函数(){
var myFormatter=Ext.util.Format.numberRenderer(“$000000”);
var mygrid=ColdFusion.Grid.getGridObject('demo');
var cm=mygrid.getColumnModel();
cm.setRenderer(0,myFormatter);
重新配置(mygrid.getStore(),cm);
};
rs=QueryNew('salary','integer');
QueryAddRow(rs,3);
QuerySetCell(卢比,'工资','100000',1);
QuerySetCell(卢比,'工资','80000',2);
QuerySetCell(卢比,'工资','5000',3);
注意-确保您的HTML具有
,以便
正常工作

注意-此代码中的网格名称
var mygrid=ColdFusion.grid.getGridObject('demo')必须与网格的名称匹配


注意-设置此代码中的数字
cm.setRenderer(0,myFormatter)
到要应用格式的列(网格中的列是从零开始的)。

如果不起作用,它将中断排序,因为它将作为字符串返回。它需要在网格端完成。SQL格式化不是一个选项吗?或者需要在网格中进行排序?SQL格式化也会中断排序
<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>