extjs buildquery override不起作用

时间:2011-03-14 18:33:33

标签: extjs

我创建了一个这样的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.

2 个答案:

答案 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)中的内容,并了解您有哪些对象