2016-03-29 14 views
0

Die Anforderung besteht darin, Seitenumbrüche und Filter zu Suchverträgen hinzuzufügen. Ich habe eine Klasse namens SearchContractInfo, die 'Ext.ux.data.PagingStore' und 'Ext.data.Store' erweitern muss, um Paginierung bzw. Filer zu implementieren.Wie erweitert man 2 Klassen in ExtJS?

Da eine Klasse in ExtJS 2 Klassen nicht erweitern kann. Was ist die alternative Lösung um 2 Klassen zu erweitern?

Problem ist, wenn ich 'Ext.ux.data.PagingStore' erweitern, Seitenumbruch funktioniert, Filter nicht.

Wenn ich 'Ext.data.Store' erweitern, funktioniert der Filter, die Seitennummerierung nicht.

Ich brauche beide Seitenumbruch und Filter zusammen zu arbeiten.

Es wäre eine große Hilfe, wenn jemand eine Lösung finden könnte.

Code Snippet:

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' 
    } 
] 

});

Danke, Amith

Antwort

1

Verwendung mixins:

In der objektorientierten Programmiersprachen

, ein mixin ist eine Klasse, die von anderen Klassen Methoden zur Verwendung enthält, ohne die Elternklasse sein zu müssen von diesen anderen Klassen. Wie diese anderen Klassen Zugang zu den Methoden des Mixins erhalten, hängt von der Sprache ab. Mixins sind manchmal als "enthalten" anstatt "geerbt" beschrieben.

Wenn Sie eine Klasse definieren, können Sie eine mixins passieren:

Klassenliste in dieser Klasse zu mischen.

Ext.define('CanSing', { 
    sing: function() { 
     alert("For he's a jolly good fellow...") 
    } 
}); 

Ext.define('Musician', { 
    mixins: ['CanSing'] 
}); 

In diesem Fall erhält die Musikerklasse eine Sing-Methode von CanSing Mixin.

Ihre Mixins kann Ext.Mixin verlängern:

Diese Klasse ist eine Basisklasse für Mixins. Dies sind Klassen, die dieser Klasse erweitern und für die Verwendung als Mix-by-User-Code konzipiert sind.

Es bietet Mixins mit der Fähigkeit, Klassenmethoden der Klassen zu "haken", in denen sie gemischt sind. Betrachten Sie zum Beispiel das Methodenmuster destroy . Wenn eine Mixinklasse Cleanup-Anforderungen hätte, müsste als Teil von destroy aufgerufen werden.

Verwandte Themen