ExtJS的FieldSet的column列布局
更新时间:2009年11月20日 18:02:20 作者:
ExtJS的FieldSet的column列布局,需要的朋友可以参考下。
以下是自己扩展的FieldSet:
ME.Base.FieldSet = Ext.extend(Ext.form.FieldSet, {
layout: 'column',
fieldSetItems: [],
autoScroll:false,
defaults: {
layout: 'form',
labelAlign: 'right',
labelWidth: 65,
columnWidth: .25,
defaults: {
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'
}]
这样可以实现各个组件固定宽度,并随着Item个数的增长而自动延伸,保证整齐效果。
可是,展现的结果总是会出现边框,每一个组件外面包裹的那个容器都有边框,非常难看。
其实在列模式的每个容器配置项里加入
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,
defaults: {
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);
}
});
复制代码 代码如下:
ME.Base.FieldSet = Ext.extend(Ext.form.FieldSet, {
layout: 'column',
fieldSetItems: [],
autoScroll:false,
defaults: {
layout: 'form',
labelAlign: 'right',
labelWidth: 65,
columnWidth: .25,
defaults: {
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'
}]
这样可以实现各个组件固定宽度,并随着Item个数的增长而自动延伸,保证整齐效果。
可是,展现的结果总是会出现边框,每一个组件外面包裹的那个容器都有边框,非常难看。
其实在列模式的每个容器配置项里加入
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,
defaults: {
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);
}
});
相关文章
EXTJS记事本 当CompositeField遇上RowEditor
用RowEditor作批量编辑器时,遇到一个问题,想要在Roweditor中使用三个下拉列表组成级联式选择控件2011-07-07
解决Extjs4中form表单提交后无法进入success函数问题
form表单提交后无法进入success函数的问题,很是常见,下面有个不错的解决方法,感兴趣的朋友可以参考下2013-11-11
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
需要做一个控制grid列显示的checkboxgroup,虽然EXTJS4中的gridpanel自带列表可以来控制列的显示隐藏,需要的朋友可以参考下2014-05-05


最新评论