1

冷融合 8

我有一个基于查询的 cfgrid。它没有绑定到 cfc 函数,因为我想要一个滚动网格,而不是分页网格(如果使用 BIND,则必须提供页码和页面大小)。我可以弄清楚如何使用它来过滤一列下面的代码,但我真的需要过滤三列......

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

向过滤器字符串添加更多内容并不能解决问题......它会忽略第一对值以外的任何内容......

所以..我想如果我调用一个传递三个值并将查询结果返回给我的函数,我可以替换网格的数据存储..但我无法弄清楚让它替换的语法。

查询的返回变量具有以下格式:

{"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 回答