var _orderPanel = new Ext.form.FormPanel(
{
id : "id_deliveryPanel",
iconCls : "icon-grid",
defaults : {
labelWidth : 65
},
tbar : [ btn_edit, "-"],
items : [ {
items : {
layout : "column",
border : false,
items : [
{
xtype : "container",
columnWidth : .25,
layout : "form",
style : "padding: 0px 15px 0px 0px",
items : {
id : "id_deliveryCode",
fieldLabel : "发货单编号",
xtype : "textfield",
name : "deliveryM.deliveryCode",
maxLength : 50,
maxLengthText : '不能超过50个字符',
value : s,
// labelWidth : 20,
// width : 171,
// labelPad : 0,
readOnly : isOrderPanelOnlyRead,
allowBlank : false
}
},
{
xtype : "container",
columnWidth : .25,
layout : "form",
style : "padding: 0px 15px 0px 0px",
items : {
id : "id_orderCode",
fieldLabel : "订单编号",
xtype : "textfield",
anchor : '100%',
maxLength : 50,
maxLengthText : '不能超过50个字符',
allowBlank : false,
readOnly : isOrderPanelOnlyRead,
name : 'deliveryM.orderCode'
}
},formpanel的定义如上代码。可以看到很多控件的readOnly值都是一个变量isOrderPanelOnlyRead。
刚开始载入页面的时候,isOrderPanelOnlyRead为true。所以这些控件都是只读的
想实现在点下某个按钮之后,将isOrderPanelOnlyRead置为false,然后再次载入panel。于是那些控件变成可以编辑的。formpanel上
var btn_edit = new Ext.Button( {
text : "编辑",
id : "btn_edit",
handler : function() {
isOrderPanelOnlyRead =true;
_orderPanel.doLayout();
}
})但是并没有实现预想的效果。还是只读的。请问具体应该如何让formpanel再次载入?
{
id : "id_deliveryPanel",
iconCls : "icon-grid",
defaults : {
labelWidth : 65
},
tbar : [ btn_edit, "-"],
items : [ {
items : {
layout : "column",
border : false,
items : [
{
xtype : "container",
columnWidth : .25,
layout : "form",
style : "padding: 0px 15px 0px 0px",
items : {
id : "id_deliveryCode",
fieldLabel : "发货单编号",
xtype : "textfield",
name : "deliveryM.deliveryCode",
maxLength : 50,
maxLengthText : '不能超过50个字符',
value : s,
// labelWidth : 20,
// width : 171,
// labelPad : 0,
readOnly : isOrderPanelOnlyRead,
allowBlank : false
}
},
{
xtype : "container",
columnWidth : .25,
layout : "form",
style : "padding: 0px 15px 0px 0px",
items : {
id : "id_orderCode",
fieldLabel : "订单编号",
xtype : "textfield",
anchor : '100%',
maxLength : 50,
maxLengthText : '不能超过50个字符',
allowBlank : false,
readOnly : isOrderPanelOnlyRead,
name : 'deliveryM.orderCode'
}
},formpanel的定义如上代码。可以看到很多控件的readOnly值都是一个变量isOrderPanelOnlyRead。
刚开始载入页面的时候,isOrderPanelOnlyRead为true。所以这些控件都是只读的
想实现在点下某个按钮之后,将isOrderPanelOnlyRead置为false,然后再次载入panel。于是那些控件变成可以编辑的。formpanel上
var btn_edit = new Ext.Button( {
text : "编辑",
id : "btn_edit",
handler : function() {
isOrderPanelOnlyRead =true;
_orderPanel.doLayout();
}
})但是并没有实现预想的效果。还是只读的。请问具体应该如何让formpanel再次载入?
我这个_orderPanel是另一个panel的item项var _totalPanel = new Ext.Panel( {
id : "id_totalPanel",
iconCls : "icon-grid",
border : false,
loadMask : {
msg : '数据正在加载中,请稍候...'
},
region : "center",
trackMouseOver : true,
frame : true,
items : [ _orderPanel],
autoScroll : true,
bodyStyle : "overflow-x:hidden"
});按照你的意思,这样写:
var btn_edit = new Ext.Button( {
text : "编辑",
id : "btn_edit",
handler : function() {
_totalPanel.remove(_orderPanel);
_orderPanel.doLayout();
_totalPanel.add(_orderPanel);
_totalPanel.doLayout();
}
})
但是最后一句居然报错。
var btn_edit = new Ext.Button( {
text : "编辑",
id : "btn_edit",
handler : function() {
isOrderPanelOnlyRead =true; //有这一句也是一样的
_totalPanel.remove(_orderPanel);
_orderPanel.doLayout();
_totalPanel.add(_orderPanel);
_totalPanel.doLayout();
}
})
问题出现在_totalPanel.doLayout();导致ext_all报错ext3.0 comboBox的readonly配置项为true时,它的外观跟一个textfield没两样。现在只想知道怎么动态地变成readonly为false的正常的可以下拉的comboBox