Extjs kann nicht dynamisch Felder hinzufügen/entfernen in formpanel
Ich habe ein Formular-panel, verwendet wird ein Tabellen-layout, um ein Formular anzeigen. Ich muss hinzufügen, Funktionen zum hinzufügen /entfernen einer Gruppe von Komponenten.
Die Schaltfläche hinzufügen fügen Sie eine neue Zeile mit Komponenten unterhalb der vorhandenen Elemente & die Schaltfläche "entfernen" entfernt werden sollte, dass die zuletzt hinzugefügte Zeile.
Dem formpanel ein neues Feld hinzufügen können, aber es erscheint unterhalb der Schaltflächen und die form ist nicht in der zunehmenden Breite (siehe Screenshot unten). Ich habe versucht, dies mit den insert-und add-Funktion, aber beide haben den gleichen Effekt.
Weiß jemand, wie:
1) ich kann hinzufügen, eine Reihe von Komponenten in der nächsten Zeile?
2) Wie kann ich entfernen Sie die nächste Zeile.
Teilweise formPanel code & button-code:
![SearchForm = Ext.extend(Ext.FormPanel, {
id: 'myForm'
,title: 'Search Form'
,frame:true
,waitMessage: 'Please wait.'
//,labelWidth:80
,initComponent: function() {
var config = {
items: [{
layout:{
type:'table',
columns:5
},
buttonAlign:'center',
defaults:{
//width:150,
//bodyStyle:'padding:100px'
style:'margin-left:20px;'
},
items:[//row 1
{
xtype: 'label',
name: 'dateLabel',
cls: 'f',
text: "Required:"
},
{
xtype: 'container',
layout: 'form',
items: {
xtype: 'datefield',
fieldLabel: "From Date",
value: yesterday,
width: 110,
id: 'date1'
}
}][1]
buttons: [{
text: 'Add More Criteria (max 10 items)',
id: "addBtn",
scope: this,
handler: function(){
alert('hi');
/*this.items.add({
xtype : 'textfield',
fieldLabel : 'Extra Field',
name : 'yourName',
id : 'yourName'
}); */
this.insert(4,{
xtype: 'textfield',
id: 'input20',
//hideLabel: true,
width: 180,
fieldLabel: 'hi'
});
this.doLayout();
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfachste Weg wäre, ein fieldset in form zu halten alle die 'Zeilen' und fügen Sie eine Zeile in diese
fieldset
mitfielset.add()
(Ihre 'row' kann ein weiteres fieldset, dass alle Felder)
Dynamische Formularfelder generation scheint offensichtlich zu sein, und es gibt viele Beispiele und einige blogs für mootools etc, aber in extjs Welt, die ich nicht finden konnte, ein Beispiel(wahrscheinlich, weil die meisten Menschen nutzen mächtige Extjs-grid).Ich hatte zu erfinden, indem ich mich für MedAlyser Projekt! und im Austausch mit Ihnen.Sie könnte Fehler enthalten und/oder unvollständig sein, aber ich hoffe, Sie hilft ein bisschen.
Entfernen von Feldern war komplizierter, da die Schaltfläche entfernen, muss genau wissen, welches Feld entfernt werden. Dieser code erstellt neue Felder entfernt und Sie richtig, als Sie gefragt haben.Alle Vorschläge sind willkommen.