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日期的行 问题:我认为我写的一切都是正确的,但不起作用!主要问题是什么?
答案 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;
}
});
}
这是复制和粘贴这项工作的基本理念,更多的是作为指南。