我创建了一个这样的gridfilter:
var filters = new Ext.ux.grid.GridFilters({filters: [
{type: 'string', dataIndex: 'ContactName'}
]});
我希望覆盖buildquery方法以提供自定义逻辑。
当我这样做时:
filters.buildQuery = function(filters){
alert(Ext.util.JSON.encode(this.store.baseParams.filterParams));
};
工作正常。但是当我在另一个函数中移动警报时:
buildQuery1 : function(filters){
alert(Ext.util.JSON.encode(this.store.baseParams));
}
并称之为:
filters.buildQuery = function(filters){
buildQuery1(filters);
};
警报未显示。我得到this.store.baseParams is null or not an object.
答案 0 :(得分:0)
filters.buildQuery = function(filters)
{
buildQuery1(this,filters);
};
和
buildQuery1 : function(scope,filters){ alert(Ext.util.JSON.encode(scope.store.baseParams)); }
不确定为什么会这样:)
答案 1 :(得分:0)
我没有看到您的所有代码,但我得到的印象是您正在丢失范围并将其与过滤器混合使用。要确定此致电console.dir (this)
和console.dir (filters)
中的内容,并了解您有哪些对象