テーブルレイアウトを使用してフォームを表示するフォームパネルがあります。私は、一連のコンポーネントを追加/削除する機能を追加する必要があります。Extjsはフォームパネルにフィールドを動的に追加/削除できません
追加ボタンは、既存の要素の下に新しいコンポーネント行を追加する必要があります。&削除ボタンは最後に追加された行を削除する必要があります。
フォームパネルは新しいフィールドを追加できますが、ボタンの下に表示され、フォームの幅が増えていません(下のスクリーンショットを参照)。私は両方の挿入と追加機能でこれを試してみましたが、どちらも同じ効果があります。
どのように知っていますか: 1)次の行に一連のコンポーネントを追加できますか? 2)次の行を削除する方法。
部分formPanelコード&ボタンコード:
![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();
}
}
fieldContainerがfieldSet内に保持されていることがわかりました。これはこれを行う正しい方法ですか、十分な行として別のフィールドセットを追加するだけでしょうか? – pm13
行として別のフィールドセットを追加するだけで十分です –