Extjs 3(网格过滤器)

时间:2011-12-14 14:58:52

标签: extjs

fbar :[{
                    xtype       : 'datefield',
                    id          : 'date_s',
                    allowBlank  : true,
                    emptyText   : 'Choose date',
                    name        : 'deadline',
                    width       : 120,
                    editable    : false,
                },{
                    xtype       : 'button',
                    text        : 'Go!',
                    handler     : function () {
                     /*f.load({
                        params : {
                            start : 0,
                            limit : 2,
                            t : ''
                        }
                    });*/

                    var clear = f.clearFilter();
                    var searchValueDate1 = Ext.getCmp("date_s").getValue(); 
                    var date1 = searchValueDate1.format('Y-m-d); // 00:00:00');

                    //alert(date1);

                    //clear;
                    f.load().filter("question[deadline]", date1);

                    }
                }]

我创建了组合框,我可以选择任何日期,然后当我点击按钮时 - >它仅显示仅具有该日期9deadline日期的行 问题:我认为我写的一切都是正确的,但不起作用!主要问题是什么?

2 个答案:

答案 0 :(得分:0)

你的意思是什么不起作用?你有错误吗?

在ExtJs 3中,过滤器是一个小部件,允许您具有选择日期的可视功能,然后,它启动一个必须陷阱的事件(加载),如果您需要在过滤完成之前更改数据控制器(在asp / php中)

好的方法是给我们一个完整的测试代码,以便在我们的环境中简单地过去它

答案 1 :(得分:0)

处理程序获取传递给它的按钮和事件对象。因此处理程序应如下所示:

handler     : function (b,e) {

var theGrid = Ext.getCmp('gridId'); //You need to get the grid to filter
var theStore = theGrid.store; //Get the grid store you need it to filter

var searchValueDate1 = Ext.getCmp("date_s").getValue(); 
var date1 = searchValueDate1.format('Y-m-d); // 00:00:00');


//Filter by filters each record if true it keeps it if false it filters it out
theGrid.filterBy(function(rec){

if(rec.get('dateField') == date1 ){
  return true
}else{
 return false;
}
});

}

这是复制和粘贴这项工作的基本理念,更多的是作为指南。