Ich habe Formularlayout mit einigen TextField-Elementen und einem HtmlEditor-Element. Einige TextField-Elemente sind "verdeckt", d. H. Könnten versteckt oder angezeigt werden. Nach dem Verstecken/Anzeigen von Elementen HtmlEditor Instanz-Layout zu brechen - dort erscheint leerer Raum oder Element endet nicht am Fensterrand.ExtJS: dynamisch Layout nach dem Hinzufügen/Entfernen einiger Formularfelder
Ist es möglich, der HtmlEditor-Instanz den verbleibenden verfügbaren Speicherplatz mitzuteilen? Auch wenn einige Elemente ausgeblendet sind.
Ich habe versucht, anchor
Eigenschaft zu verwenden, aber es funktioniert gut, bis einige Elemente aus dem Layout entfernt.
Aktualisiert Hier ist ein Beispielcode:
var htmlEditor = new Ext.form.HtmlEditor({
anchor: '100% -54',
hideLabel: true
});
var fp = new Ext.form.FormPanel({
items: [{xtype: 'textfield', fieldLabel: 'zzz', mode: 'local'},
{xtype: 'textfield', fieldLabel: 'nnn', id: 'id-one', mode: 'local'},
htmlEditor]
});
var w = new Ext.Window({layout: 'fit',
height: 400, width: 600,
tbar: [{text: 'click',
handler: function() {
// hide element
Ext.getCmp('id-one').getEl().up('.x-form-item').setDisplayed(false);
w.doLayout();
}
}],
items: fp
});
w.show();
ausführen, Symbolleiste auf die Schaltfläche klicken „Klick“, sollte ein Feld verschwinden, bei leeren Raum unter Htmleditor schauen dann.
Es hilft eigentlich nicht. Wenn ein Element gerade ausgeblendet ist, wird unterhalb von HtmlEditor (oder textarea) ein leerer Bereich angezeigt. –
Mein Kommentar setzt voraus, dass (A) Ihre Widgets mit der richtigen Verankerung eingerichtet sind und (B) alle verschachtelten Container über ein entsprechendes Layout verfügen. Wenn Sie andere Dinge falsch eingerichtet haben, hilft doLayout() nicht, aber da Sie keinen Code gepostet haben, ist es unmöglich zu sagen, was das Problem sein könnte. –
Eine weitere Sache - vorausgesetzt, Sie haben ein kompliziertes App-Layout, um dieses Problem zu lösen, sollten Sie einen einfachen Testfall mit einem nicht verschachtelten FormPanel und nur genügend Felder und Layout-Code, um Ihr Szenario zu testen. Sobald Sie damit arbeiten, wird es einfacher, herauszufinden, was Sie möglicherweise in Ihrem App-Code ändern müssen. Ihr Anwendungsfall ist durchaus erreichbar, da ich genau das gleiche getan habe. –