extjs, Wie man ein raster
In der Designer-ich meine grid-name gleich "MyGrid"
Klick auf den button addRecord heißt, es schlägt fehl, in denen Zeilen ist, versucht man einen nicht definierten raster.
Wie definiere ich dieses "MyGrid", so dass es verweist auf die raster innerhalb des Panels?
Ext.define('MyApp.view.MyPanel', {
extend: 'MyApp.view.ui.MyPanel',
initComponent: function() {
var me = this;
me.callParent(arguments);
var button = me.down('button[text=Submit]');
button.on('click', me.onSubmitBtnClick, me);
},
addRecord: function(myRecordArray) {
var rows = grid.getStore().getRange(); //ERROR happens here
console.log(rows);
},
onSubmitBtnClick: function() {
this.addRecord(["ll", "kk", "mm"]);
}
});
Chrome-Javascript-Debugger-Konsole ->
Uncaught ReferenceError: grid is not defined
InformationsquelleAutor BAR | 2012-01-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Rufen Sie vor
grid.getStore()
Sie brauchen, um zu definieren ("grid"). Sie können nur tunvar grid = this;
Recht vor, die anrufen, weil Sie bei der Definition der Funktion addRecord von der Innenseite des Gitters.EDIT:
Mir ist gerade aufgefallen, dass das nicht genannt wird, aus dem inneren des grid-panel mit dem Shop, aber einige andere Fenster. Was Sie tun müssen, ist legen Sie eine id config auf Ihrem grid-panel. E. g.
id: MyGridPanel
Es gibt vielleicht schon eine id config festgelegt und Sie müssen nur herausfinden, was es ist. Wenn Sie mit der ExtJS designer es kann eigentlich schon festgelegt werden "MyGridPanel". Dann rufen Sie es so auf:dann Sie tun würde:
InformationsquelleAutor Geronimo
versuchen
button.on('click', me.onSubmitBtnClick, me)
zubutton.on('click', Ext.bind(me.onSubmitBtnClick, me), me)
Dieser sieht aus wie ein scope Problem, in Ihrem
onSubmitBtn()
Methodethis
wahrscheinlich eine Anspielung auf das falsche Objekt (z.B. Fenster oder die Schaltfläche), und nicht das grid-Objekt, das ist, was Sie wollen.Chrome-Javascript-Debugger-Konsole -> Uncaught ReferenceError: grid ist nicht definiert
Ich sehe auch, Sie erweitern die Anwendung.Blick.ui.MyPanel? nicht, dass verlängern GridPanel? Wahrscheinlich sollte setzen Sie einfach debugger-Anweisung vor.addRecord in onSubmitBtnClick, nur um zu sehen, was gemeint ist, und Abgesehen davon, dass ich nicht noch andere Vorschläge - Sorry, es ist schon eine lange Zeit, da habe ich jede ExtJS Arbeit.
es bezieht sich auf -> Ext.Klasse.newClass
InformationsquelleAutor Dzhu