要求是为搜索合同添加分页和过滤器。 我有一个名为SearchContractInfo的类,它必须扩展' Ext.ux.data.PagingStore'和' Ext.data.Store'分别实现分页和文件管理器。
由于一个类不能在ExtJS中扩展2个类。扩展2个类的替代解决方案是什么?
问题是,如果我扩展' Ext.ux.data.PagingStore',分页工作,过滤器不会。
如果我扩展了Ext.data.Store',过滤器工作,分页没有。
我需要分页和过滤器一起工作。
如果有人能提出解决方案,那将是很有帮助的。
代码段:
Ext.define(' CLAdmin.store.SearchContractInfo',{
//extend: 'Ext.ux.data.PagingStore',
extend:'Ext.data.Store',
model: 'CLAdmin.model.administration.SearchContractInfo',
pageSize: 30,
lastOptions: {start: 0, limit: 30, page: 1},
proxy: {
type: 'direct',
directFn: 'contractAction.searchContracts',
reader: {
root: 'records'
},
extraParams: {
searchCriteria: undefined
},
listeners: {
exception: function(me, response, operation, eOpts) {
var msg = "Application unavailable.Please try after some time";
Ext.Msg.show({
title: 'Application',
msg: msg,
buttons: Ext.Msg.OK,
icon: Ext.Msg.ERROR
});
}
}
},
sorters: [
{
property: 'customerNumber',
direction: 'ASC'
},
{
property: 'startDate',
direction: 'DESC'
}
]
});
谢谢, Amith
答案 0 :(得分:1)
使用mixins
:
在面向对象的编程语言中,mixin是一个类 包含其他类使用的方法,而不必是 那些其他类的父类。那些其他课程如何获益 访问mixin的方法取决于语言。 Mixins是 有时被描述为“包含”而不是“继承”。
定义课程时,您可以传递mixins
:
要混合到此课程中的课程列表。
Ext.define('CanSing', { sing: function() { alert("For he's a jolly good fellow...") } }); Ext.define('Musician', { mixins: ['CanSing'] });
在这种情况下,音乐家课将从CanSing mixin获得一种唱歌方法。
你的mixins可以扩展Ext.Mixin
:
这个类是mixins的基类。这些是扩展的类 此类,旨在用作用户代码的mixin。
它为mixins提供了“挂钩”类方法的能力 他们混在一起的课程。例如,考虑破坏 方法模式。如果mixin类有清理要求,那就可以了 需要被称为毁灭的一部分。