1

ColdFusion 8

クエリに基づくcfgridがあります。ページグリッドではなくスクロールグリッドが必要なため、cfc関数にバインドされていません(BINDを使用する場合は、ページ番号とページサイズを指定する必要があります)。次のコードですが、実際には3つの列でフィルタリングする必要があります...

grid.getDataSource().filter("OT_MILESTONE",t1);

フィルタ文字列にさらに追加しても、トリックは実行されません...最初の値のペア以外は無視されます。

したがって、3つの値を渡してクエリ結果を返す関数を呼び出すと、グリッドのデータストアを置き換えることができると思いましたが、置き換えるための構文がわかりません。

クエリに対して返される変数の形式は次のとおりです。

{"COLUMNS":["SEQ_KEY","ID","OT_MILESTONE"],"DATA":[[63677,"x","y"]]} 

何か案は?

4

2 に答える 2

0

たくさんの血、汗、涙、そして罵倒の後..他の誰かが複数の変数でcfgridをフィルタリングする必要があるかもしれない場合に備えて、ここに答えがあります:

            var w1 = ColdFusion.getElementValue('wbs');
            var t1 = ColdFusion.getElementValue('task');    
            var p1 = ColdFusion.getElementValue('project');

            grid = ColdFusion.Grid.getGridObject('data');
            store = grid.getDataSource();
            store.clearFilter();
            store.filterBy(function myfilter(record) {
                    var wantit = true;
                        if (trim(w1) != '') {
                            if(record.get('WBS_ID') != w1) {
                                wantit = false;
                        }}
                        if (trim(t1) != '') {
                            if(record.get('OT_MILESTONE') != t1) {
                                wantit = false;
                        }}
                        if (trim(p1) != '') {
                            if(record.get('PROJECT') != p1) {
                                wantit = false;
                        }}

                    return wantit;
                });

            ColdFusion.Grid.refresh('data',false); 

JSトリム機能が必要になります...

列名が大文字であることを確認してください...

于 2010-05-14T22:15:48.957 に答える