以下は独自の拡張 FieldSet です:
ME .Base.FieldSet = Ext.extend(Ext.form.FieldSet, {
layout: 'column',
fieldSetItems: [],
autoScroll:false,
defaults: {
layout : 'form' 、
labelAlign: 'right'、
labelWidth: 65、
columnWidth: .25、
デフォルト: {
anchor: '96%'
}
},
initComponent: function(){
var thisItems = new Array();
var itemsLen = this.fieldSetItems.length;
if(itemsLen > 0){
for (var i = 0; i < itemsLen; i ){
thisItems[thisItems.length] = {
items: this.fieldSetItems[i]
}
}
}
this.items = thisItems;
ME.Base.FieldSet.superclass.initComponent.call(this);
new ME.Base.FieldSet({
title: '基本情報',
autoHeight: true,
fieldSetItems: [{
xtype : 'textfield',
fieldLabel : "ユーザー名",
name : 'USER_NAME'
}, {
xtype : 'textfield',
inputType : 'password',
fieldLabel : "ユーザー パスワード",
name : 'PASSWORD'
}, {
xtype : 'textfield',
fieldLabel : "携帯電話番号" ,
name : 'MOBILE'
}, {
xtype : 'textfield',
fieldLabel : "携帯電話番号",
name : 'sss '
},{
xtype : 'textfield',
fieldLabel : "携帯電話番号",
name : 'eee'
}]
これ各コンポーネントの幅を固定することができ、項目の数が増えると自動的に拡張されるため、きれいな効果が保証されます。
ただし、表示される結果には常に境界線があり、各コンポーネントを囲むコンテナーには境界線があり、非常に見苦しいです。
実際には、列モードで各コンテナ構成項目に
xtype: 'container'、
autoEl: {}、
を追加するだけです:
ME.Base.FieldSet = Ext.extend(Ext.form.FieldSet, {
layout: 'column '、
fieldSetItems: []、
autoScroll:false、
defaults: {
xtype: 'container'、
autoEl: {}、
layout: 'form' 、
labelAlign: 'right'、
labelWidth: 65、
columnWidth: .25、
デフォルト: {
anchor: '96%'
}
}、
initComponent: function(){
var thisItems = new Array();
var itemsLen = this.fieldSetItems.length;
if(itemsLen > 0){
for (var i = 0; i < itemsLen i ){
thisItems[thisItems.length] = {
items: this.fieldSetItems[i]
}
}
this.items = thisItems ;
ME.Base.FieldSet.superclass.initComponent.call(this);