« Sofort Umbenennen Flash Player ohne Sound in ubuntu intrepid ibix »

ExtJs Panels in Klassen kapseln

2009 6 March

Wenn man in ExtJs ein Panel mehrfach verwenden will, muss man dieses in einer Klasse kapseln, den aus einem einfachen new Ext.Panel Aufruf kann man nicht mehrere Instanzen erstellen.
Um das Panel in einer Klasse zu kapseln biete ExtJS die Möglichkeit eines Extends und der initComponent Methode.
Hier ein Beispiel:

MyGrid = Ext.extend(Ext.grid.GridPanel, {
loadMask : true,
initComponent : function() {
var store = new Ext.data.JsonStore({
autoLoad : true,
url: '../services.php?',
root: 'data',
id: 'id',
fields: [
'name','beschreibung'
]
});
var cm = new Ext.grid.ColumnModel([ {
dataIndex: 'name',
header: 'Rubrik',
width: 170,
id: 'name'
}, {
header: "",
width: 17,
dataIndex:'farbcode'
}
]);
Ext.apply(this, {
split: true,
waitMsgTarget: true,
iconCls: 'grid',
store: store,
cm: cm
});
// Aufruf der Parent Klasse
MyGrid.superclass.initComponent.apply(this,arguments);
}
});
// registieren
Ext.reg('mgrid', MyGrid);

Jetzt kann man einfach über new MyGrid oder den xtype 'mygrid' auf das Panel zugreifen.
Diese Methode ermöglicht es einem seine Klassen deutlich unabhängiger zu machen. Da ich kein hinweis auf diese Methode bei ExtJs fand war es für mich eine kleine Offenbarung als ich es Dank Axel herausgefunden habe.


Bearbeiten
Feed für diesen Eintrag

0 Antworten über ExtJs Panels in Klassen kapseln

    Bisher gibt es keine Kommentare.

Deine Angaben

Die Email Addresse wird nicht veröffentlicht

Dein Kommentar

Torsten Zander


 RSS Feed abonnieren

Twitter  Auf Twitter folgen

Posts

Blogrolls