
后台代码里设置一个全局的布尔变量存储是否出发button事件的状态
button_click事件点击了一次后,将该全局的布尔变量的值改变,下次再单击该form1中button时判断布尔值是否已经改变,改变了说明不是第一次单击,就不需要d出form2窗体了
/**
* 自定义一个带编辑控制按钮的控件
*/
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)
控制函数自己写吧
你使用框架提供的“客户端调用服务器端方法”配置一个调用服务器端方法的按钮,通过它调用服务器调方法取到数据,并在回调JS函数中将取到的值赋给各输入框就可以了。参考DEMO的“数据展示篇”---“客户端调用服务器端方法”---“与框架无关的调用”的演示。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)