我需要在Sencha中更改一些内容,我需要添加第二个组合框,在开始时必须禁用,这没关系,但是我需要第一个组合框在某些项目时启用第二个组合框(并非所有)从第一个组合中选择,看起来很简单。
以下是代码:
var formPanel = new Ext.form.FormPanel({
id: 'formanchor-form',
title: 'Nuevo Gasto',
bodyStyle: 'padding:5px 5px 0',
width: 600,
defaults: {
width: 230
},
defaultType: 'textfield',
renderTo: 'formulario',
frame: true,
items: [{
xtype: 'combo',
typeAhead: true,
name: 'cboGasto',
id: 'cboGasto',
fieldLabel: 'Gastos',
store: storeCbo,
displayField: 'gasto',
valueField: 'codigo',
allowBlank: false,
width: 250,
mode: 'local',
triggerAction: 'all',
emptyText: 'SELECCIONE',
blankText: 'Debe seleccionar un gasto',
forceSelection: true
}, {
xtype: 'numberfield',
fieldLabel: 'Monto',
name: 'txtMonto',
id: 'txtMonto',
maxLength: 7,
allowBlank: false,
minValue: 100,
minText: 'El monto mínimo es 100',
maxValue: 9999999,
maxLengthText: 'El monto máximo es 9.999.999',
blankText: 'El monto es requerido',
width: 100
}, {
xtype: 'combo',
typeAhead: true,
name: 'CboDeudasReceptor',
id: 'CboDeudasReceptor',
fieldLabel: 'Receptor',
store: storeCboR,
displayField: 'receptor',
valueField: 'codigo',
allowBlank: false,
width: 250,
mode: 'local',
triggerAction: 'all',
emptyText: 'SELECCIONE',
blankText: 'Debe seleccionar un Receptor',
forceSelection: true,
disabled: true
}],
buttons: [{
text: 'Agregar',
handler: function() {
var mon = Ext.getCmp('txtMonto').getValue();
var gas = Ext.getCmp('cboGasto').getValue();
if (mon.length == 0) {
Ext.MessageBox.alert('Monto del Gasto', 'Debe Ingresar un monto para el gasto.');
Ext.getCmp('txtMonto').focus();
return false;
}
if (gas.length == 0) {
Ext.MessageBox.alert('Gasto', 'Debe Seleccionar un gasto.');
Ext.getCmp('cboGasto').focus();
return false;
}
location.href = 'ingresa_gastos_lib.asp?cboGasto=' + gas + '&txtMontoPesos=' + mon + '&' + params();
}
}, {
text: 'Volver',
handler: function() {
location.href = 'datos_deuda.asp?' + params();
}
}]
});
更新:
如果我在第一个组合中放置一个监听器,那么部分工作就像我想要的那样,但是第二个组合只是工作下拉列表但看起来仍然是禁用的,我无法编辑。所以现在的问题是:如何让第二个组合框完全运行。
listeners: {
select: function(combo, record, index) {
if (Ext.getCmp('cboGasto').getRawValue() == 'RECEPTOR: EMBARGO') {
alert(Ext.getCmp('cboGasto').getRawValue());
Ext.getCmp('CboDeudasReceptor').disabled = false;
}
}
}
答案 0 :(得分:2)
将disabled
字段设置为false不是解决方案。它只是更改对象中属性的值,但所有视觉样式仍然存在。您应该使用组合框的setDisabled()
方法,或enable()
和disabled()
方法。所以你的听众应该如下所示:
select: function (combo, record, index) {
if (Ext.getCmp('cboGasto').getRawValue()=='RECEPTOR: EMBARGO'){
alert(Ext.getCmp('cboGasto').getRawValue());
Ext.getCmp('CboDeudasReceptor').setDisabled(false);
//Or Ext.getCmp('CboDeudasReceptor').enable();
}
}
}
答案 1 :(得分:-1)
public function update_number($id,$lnum)
{
$this->db->set('eenter code herem_lastnumber', '$lnum');
$this->db->where('em_id',$id);
$this->db->update('emaster');
}