【问题标题】:CFGRID - replace data store or filter on more than one columnCFGRID - 在多个列上替换数据存储或过滤器
【发布时间】:2010-05-18 17:45:14
【问题描述】:

ColdFusion 8

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

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

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

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

查询返回的变量格式如下:

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

有什么想法吗?

【问题讨论】:

    标签: coldfusion cfgrid


    【解决方案1】:

    【讨论】:

    • 是的,那是我的实验之一..它需要页码和页面大小...所以我不能使用它。我尝试通过将页面设置为 1 并将记录数设置为页面大小来“伪装” - 但随后网格会自动变成一个巨大的分页网格。
    • Dan Vega's 是我获得单个过滤器代码的地方,另外两个使用带有页面和页面大小的绑定网格...我一直在玩这里的代码:stackoverflow.com/questions/1805954/… 已解析JSON 返回到我需要的部分,但还没有让商店实际替换。
    • 如果您愿意,可以在 Twitter 上询问 Dan。他是我告诉你的 CF8 CFGRID 人。 :)
    【解决方案2】:

    经过大量的鲜血、汗水、泪水和咒骂......这是答案,以防其他人可能需要通过多个变量过滤 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 修剪函数...

    确保列名是大写...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-03
      • 2019-07-31
      • 1970-01-01
      • 2017-12-15
      • 1970-01-01
      • 2015-08-12
      • 2011-12-24
      • 1970-01-01
      相关资源
      最近更新 更多