1

ドキュメントによると、マスク属性を使用して列をフォーマットできるはずです。

<cfgridcolumn name="salary" type="numeric" mask="$999,999">

表示したい給与額があります

$100,000
 $80,000
  $5,000

なぜそれが機能しないのか、何か考えはありますか?

以下のテスト用の完全なコードスニピット。

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

2 に答える 2

2

私がここで見つけてあなたのケースに適用したこの答えのために、@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>

<head></head>-が機能するためには、HTMLにが含まれていることを確認してください<cfhtmlhead>

-このコードのグリッド名はvar mygrid = ColdFusion.Grid.getGridObject('demo');、グリッドの名前と一致する必要があります。

-このコードの数値をcm.setRenderer(0, myFormatter);、フォーマットを適用する列に設定します(グリッドの列はゼロベースです)。

于 2013-01-09T14:12:53.843 に答える
0

どうやら、使用したマスクをサポートする「通貨」タイプは、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>
于 2013-01-09T07:19:53.310 に答える