validacion en Grid Editable
que tal amigos, estoy haciendo un grid editable en el cual incorpore una validacion para dos celdas del grid que reciben valor, la validacion es para que ninguna de las dos celdas quede en cero y si una de las dos tiene valor en la otra no deje digitar valor. las celdas son debito y credito. El problema que tengo es que no se como hacer para que en el momento de ingresar el valor en una de las dos celdas el me lo acepte. aqui esta el codigo agradezco en lo que me puedan colaborar
****** este es el grid******
this.grid = new Ext.grid.EditorGridPanel({
store: Store,
border: false,
stripeRows: true,
height:200,
clicksToEdit: 1,
columns:[
this.grid = new Ext.grid.RowNumberer(),
{id:'cuenta',
dataIndex: 'cuenta',
header: 'CUENTA',
sortable: true,
width: 150,
editor: new fm.ComboBox({
allowBlank: false,
lazyRender: true,
//stripeRows: true,
triggerAction: 'all',
typeAhead: true,
store: ['110501','110502','11100102']
})
},{
dataIndex: 'tercero',
header: 'TERCERO',
sortable: true,
width: 140,
editor: new fm.ComboBox({
lazyRender: true,
allowBlank: false,
//stripeRows: true,
store:[98589329,65776974,43889009],
/* listeners: {
render: function(c) {
c.getEl().on({
keypress: handleKeyPress,
keydown: handleKeyDown,
scope: c
});
}
}*/
})},{
dataIndex: 'c_costo',
header: 'C_COSTO',
sortable: true,
width: 100,
editor: new fm.ComboBox({
lazyRender: true,
//stripeRows: true,
allowBlank: false,
triggerAction: 'all',
store:['001','002','003','004']
})},{
fieldLabel:'debito',
dataIndex: 'debito',
header: 'DEBITO',
id:'frm_debito',
exclusionPair: 'frm_credito',
sortable: true,
width: 155,
//xtype: 'numberfield',
editor: new fm.NumberField({
allowBlank: false,
type:'float',
//stripeRows: true,
vtype: 'exclusionNotZero'
})},{
fieldLabel:'credito',
dataIndex: 'credito',
header: 'CREDITO',
id:'frm_credito',
exclusionPair: 'frm_debito',
sortable: true,
width: 155,
//xtype: 'numberfield',
editor: new fm.NumberField({
allowBlank: false,
//stripeRows: true,
vtype: 'exclusionNotZero'
})}
]
// Columnas,
});
**********************
** esta es la validacion
exclusionNotZero: function(val, gridNumberField) {
/*
* Si hay valor en el campo exclusionPair, es que tenemos que hacer la validación
*/
if (field.exclusionPair) {
// Nos quedamos con la instancia del objeto indicado en exclusionPair
var pair = Ext.getCmp(gridNumberField.exclusionPair);
// Nos quedamos con el valor del campo
var pairValue = pair.getValue();
Ext.Msg.alert('Error',gridNumberField);
if ((pairValue > 0) && (val > 0)) {
/**
* Si los dos tienen un valor positivo, la regla de validación no se pasa
* marcamos el campo como no válido y un mensaje
*/
gridfield.markInvalid('Un movimiento no puede tener a la vez haber y deber');
return false;
} else if ((pairValue == 0) && (val == 0)){
/**
* Si los dos tienen un valor cero, la regla de validación no se pasa
* marcamos el campo como no válido y un mensaje
*/
gridNumberField.markInvalid('Un movimiento no puede tener haber y deber a cero');
return false;
} else {
/**
* Si llegamos aquí es que la regla se ha pasado. Como anteriormente un campo
* pudo haberse marcado como no válido, los desmarcamos por si acaso
*/
gridNumberField.clearInvalid();
pair.clearInvalid();
return true;
}
}
else{
Ext.Msg.alert('Error',field);
}
/**
* El campo no tiene valor en exclusionPair, devolvemos true para que se valide el campo
*/
return true;
}
});
¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook
Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.