2016-12-30 3 views
1

Ich habe Probleme beim Hinzufügen von Textbereich zu Container dynamisch.Hinzufügen von Textbereich zu Container extjs

Anfängliche Schaffung Behälter:

xtype: 'container', 
    layout: 'form', 
    width: 400, 
    ref: 'form', 
    layoutConfig: { 
     labelSeparator: ' ', 
     trackLabels: true 
    }, 
    items: [{ 
     xtype: 'textarea', 
     value: 'test', 
     fieldLabel: 'label', 
     anchor: '100%', 
     submitValue: false, 
     readOnly: true, 
     ref: '../field_1', 
     id: 'field_1' 
    }] 
} 

Dynamische Code:

for (i = 4; i < obj.length; i++) { 
    var id = i + 12; 
    id = 'field_' + id; 
    var field = newTextArea(id); 
    field.setValue(obj[i].value); 
    field.setVisible(true); 
    this.form.add(field); 
} 

Funktion Textbereich zu erstellen:

function newTextArea(id) { 
    var text_Area = new Ext.form.TextArea({ 
     fieldLabel: 'Test', 
     height: 30, 
     width: 250, 
     submitValue: false, 
     readOnly: true, 
     autoScroll: true, 
     id: id 
    }); 
    return text_Area; 
} 

Problem:

Wenn ich debuggen und sehen bilden, Textarea wird in Formularelementen hinzugefügt, aber nicht im Browser angezeigt. Kann jemand vorschlagen, was zu tun ist?

Grüße,

Raj

+0

Wo und in welchem ​​Umfang wird der dynamische Code ausgeführt? Nicht sicher "this.form" ist der richtige Weg, um den Container zu referenzieren. – scebotari66

+0

@scebotari Dynamischer Code wird vom Formularbereich ausgeführt, wenn ich gerenderte: true, EL ist undefined Fehler kommt. – user1770589

+0

Überprüfen Sie diese einfache Geige - https://fiddle.sencha.com/#view/editor&fiddle/1ne5. Nicht sicher, was mit Ihrem Code falsch ist, Sie erwähnen nicht, was ist "obj" und ich denke, dass "this.form" ist ein falscher Verweis auf den Container. Ich denke, Sie können 'Ext.ComponentQuery.query' oder etwas Ähnliches verwenden (wie' up' und 'down' Methoden für abfragbare Komponenten). –

Antwort

0

prüfen diese simple fiddle.

Nicht sicher, was ist falsch mit Ihrem Code, Sie nicht erwähnen, was ist obj und ich denke, dass this.form ist ein falscher Verweis auf den Container. Ich denke, man kann ähnlich Ext.ComponentQuery.query oder etwas verwenden (wie up und down Methoden für queryable Komponenten).

0

In extjs 3.x, haben Sie doLayout nach Hinzufügen von Elementen zu einem Behälter rufen.

for (i = 4; i < obj.length; i++) { 
    var id = i + 12; 
    id = 'field_' + id; 
    var field = newTextArea(id); 
    field.setValue(obj[i].value); 
    field.setVisible(true); 
    this.form.add(field); 
} 

this.form.doLayout(); 
Verwandte Themen