extjs panel ändern Titel auf ein Ereignis
Ich habe ein grid panel wie dieses
Ext.define('sCon.view.SalesGrid',{
extend: 'Ext.grid.GridPanel',
title: 'Sales Data',
//other params
initComponent: function(){
this.callParent(arguments);
}
});
Auf ein click-Ereignis, das will ich ändern den Titel dieses Panels. Mein code im controller sieht aus wie diese.
Ext.define('sCon.controller.SalesGridController', {
extend: 'Ext.app.Controller',
views: ['SalesGrid'],
//other handlers
changeTitle: function(newTitle){
this.getView('SalesGrid').setTitle('title_changed');
}
Derzeit heißt es, dass es nicht die Funktion als setTitle(). Aber die docs sagen, dass grid-panel hat setTitle () - Funktion. Ich habe auch versucht, die änderung der Titel mit dem "title" - variable wie
changeTitle: function(newTitle){
this.getView('SalesGrid').title = 'title_changed';
Weder funktioniert.. Bitte um Hilfe.
Deine Fehlermeldung bedeutet, dass etwas zurückgegeben wurde
ja, vergaß zu erwähnen, dass. wenn ich log-Konsole.anmelden(das.getView('SalesGrid')), ich bin immer einige Sache wie diese - function Konstruktor() { return this.Konstruktor.apply(this, arguments) || null;} ,, Wenn ich log.getView('SalesGrid'), Iam immer "undefined"..
this.getView('SalesGrid')
nicht .setTitle()
Methode. Sieht aus wie Sie nicht tatsächlich bekam 'SalesGrid' Ansicht nach this.getView('SalesGrid')
.ja, vergaß zu erwähnen, dass. wenn ich log-Konsole.anmelden(das.getView('SalesGrid')), ich bin immer einige Sache wie diese - function Konstruktor() { return this.Konstruktor.apply(this, arguments) || null;} ,, Wenn ich log.getView('SalesGrid'), Iam immer "undefined"..
this.query('SalesGrid')[0]
oder this.getComponent(0)
im biederen von this.getView('SalesGrid')
erhalten Sie die salesgrid... oder @webbandit seine Lösung ist sogar noch besser mit dem controller...InformationsquelleAutor amrk7 | 2012-09-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
UPD: Hier einige
refs
docs von Sencha für ExtJS 4.1.Verwenden
refs
Eigenschaft des Controllers, um Verweise auf alle Komponenten.In deinem Beispiel:
Im Controller hinzufügen:
Dann können Sie den Zugriff auf Ihre SalesGrid anzeigen überall in Ihrem controller wie
this.getSalesGrid();
Methode.In Ihrem Fall:
sollten Sie erklären, mehr über refs oder zumindest API-links.
Diese Eigenschaft ist neu seit 4.1
Ja, es ist. Nehmen Sie einige Zeit zu verschieben, um 4.1. Von version zu version ExtJS wird besser und besser.
InformationsquelleAutor s.webbandit
Der selector-Methode, die Sie verwenden, nur gibt Sie der Klasse und nicht einer Instanz von!
Sollten Sie es so machen
Sehen API
dies ist die Art und Weise verwendet werden in der Dokumentation. Siehe aktualisierten post. Und man kann nicht sagen, dass es für alle Fälle... Bei manchen habe ich die gleiche Ansicht Instanz in anderen ich ein neues anlegen jeder. Es hängt von der Art der Ansicht, und was Sie tun. Alles in allem sollten Sie eine Mischung
InformationsquelleAutor sra