如何为Extjs的form表单组件里面的每一个字段增加一个编辑按钮

这样做的目的是为了让有编辑需要的字段增加一个字段的单独编辑的功能,也就是说:一次只允许用户编辑表单中的一个字段.不允许同时编辑两个字段... 这样做的目的是为了让有编辑需要的字段增加一个字段的单独编辑的功能,也就是说:
一次只允许用户编辑表单中的一个字段.不允许同时编辑两个字段
展开
 我来答
百度网友ce8a783
推荐于2016-09-24 · TA获得超过318个赞
知道小有建树答主
回答量:349
采纳率:50%
帮助的人:267万
展开全部

/**

* 自定义一个带编辑控制按钮的控件

*/

Ext.define('Ext.form.ControlEditField', {

extend : 'Ext.form.FieldContainer',

alias : 'widget.controleditfield',

groupFieldType : 'textfield',

groupFieldConfig : null,

layout : 'hbox',

width : 250,

initComponent : function() {

var me = this;

me.items = [];

me.width = me.width + 50;

if (me.groupFieldConfig) {

me.groupFieldType = me.groupFieldConfig.xtype

|| me.groupFieldType;

me.items = [me.groupFieldConfig, {

xtype : 'button',

text : me.groupFieldConfig.readOnly ? '当前关' : '当前开',

width : 50,

handler : function(btn) {

var form = btn.up()

var field = form.down(form.groupFieldType);

var readonly = field.readOnly;

btn.setText(!readonly ? '当前关' : '当前开');

field.setReadOnly(!readonly);


}

}];

}

me.initLabelable();

me.initFieldAncestor();


me.callParent();

},

setValue : function(value) {

var me = this;

var field = me.down(me.groupFieldType);

if (field) {

field.setValue(value);

}

},

getValue : function() {

var me = this;

var field = me.down(me.groupFieldType);

if (field) {

return field.getValue();

}

}

});

Ext.create('Ext.form.Panel', {

title : 'FieldContainer Example',

width : 550,

bodyPadding : 10,

items : [{

xtype : 'controleditfield',

fieldLabel : 'Last Three Jobs',

labelWidth : 100,

width : 300,

groupFieldConfig : {

xtype : 'combo',

store : [['a', 'b'], ['c', 'd']]

}

}, {

xtype : 'controleditfield',

fieldLabel : 'Last Three Jobs',

labelWidth : 100,

width : 300,

id : 'test',

groupFieldConfig : {

xtype : 'textfield'

}

}, {

xtype : 'controleditfield',

fieldLabel : 'Last Three Jobs',

labelWidth : 100,

width : 300,

groupFieldConfig : {

xtype : 'datefield',

format : 'Y-m-d H:i:s'

}

}],

renderTo : Ext.getBody()

});

Ext.defer(function() {

Ext.getCmp('test').setValue("我我我我");

}, 5000);

控制函数自己写吧

来自:求助得到的回答
xx7760e5
2015-01-29 · TA获得超过365个赞
知道小有建树答主
回答量:255
采纳率:100%
帮助的人:175万
展开全部
可以用Ext.definde自定义一个新组件,然后自己加上button。

也可以直接在后面加上么,无非改下布局而已。button共用同一个事件就可以了,用name或cls去query。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式