PDA

View Full Version : grid cellediting how to set default value on focus field ?



maneljn
2 Apr 2014, 7:04 AM
How can i do to set "today" default value on this datefield column when user clics for cell edit ??

The column inside grid...


{
text: gt.dgettext('esiacademia', 'Fecha Confirmada'),
width: 100,
dataIndex: 'notifalum_fecha',
align: 'center',
sortable: false,
xtype: 'datecolumn',
format: 'd-m-Y',
groupable: false,
renderer: function (val, metaData, record, rowIndex, colIndex, store, view) {
// Pintar el valor de colores (control plazas max)
metaData.tdCls = '';
metaData.tdAttr = 'data-qtip=""';
if (val) {
metaData.tdCls = 'esiacademia-grid_notificaciones_fechaConfirmada';
return Ext.Date.format(val, 'd-m-Y');
}
return '';
},
editor: {
xtype: 'datefield',
format: 'd-m-Y',
startDay: 1,
submitFormat: 'Y-m-d'
}
},

Gary Schlosberg
2 Apr 2014, 11:35 AM
Have you tried setting 'value: new Date()' as seen in the first example on this page?http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.form.field.Date

maneljn
2 Apr 2014, 11:42 PM
Thanks Gary.
I have found a solution to integrate all with my MVC controller

The view definition of my clearable datefield:


//@charset UTF-8

Ext.define('esiacademia.view.notificacionesAlumnos.mantEdicionCelleditorFecha', {
extend: 'Ext.form.field.Date',
alias : 'widget.esiacademia_view_notificacionesAlumnos_mantEdicionCelleditorFecha',

requires: [
],

name: 'celleditorNotificacionesAlumnosFecha',
format: 'd-m-Y',
startDay: 1,
submitFormat: 'Y-m-d',
trigger2Cls: Ext.baseCSSPrefix+'form-clear-trigger',

onTrigger2Click: function(){
var me=this;
me.setValue(null);
},

initComponent: function() {
var me = this;

// Ejecutar metodo de su parent
me.callParent(arguments);
}

});


The grid column:


....

{text: gt.dgettext('esiacademia','Fecha Confirmada'), width: 115, dataIndex: 'notifalum_fecha', align: 'center', sortable: false, xtype: 'datecolumn', format: 'd-m-Y', groupable: false,
renderer: function(val, metaData, record, rowIndex, colIndex, store, view) {
// Pintar el valor de colores (control plazas max)
metaData.tdCls = '';
metaData.tdAttr = 'data-qtip=""';
if ( val ) {
metaData.tdCls = 'esiacademia-grid_notificaciones_fechaConfirmada';
return Ext.Date.format(val,'d-m-Y');
}
return '';
},
editor: {
xtype: 'esiacademia_view_notificacionesAlumnos_mantEdicionCelleditorFecha'
}
},

...


Inside the controller:


init: function() {
var me = this;
me.control({
....

'esiacademia_view_notificacionesAlumnos_mantEdicionCelleditorFecha[name="notifalum_fecha"]' : {
focus: me.onCelleditorNotifAlumFechaFocus
},

...
});
},

...




//
// Evento al entrar (focus) en el campo datefield editor del celledit del grid para poner la fecha confirmada
//
onCelleditorNotifAlumFechaFocus: function(campo, e, eOpts) {
var me = this;

// Si la fecha esta en blanco por defecto ponemos la fecha del reloj.
if (campo.name=='notifalum_fecha') {
if (campo.getValue()==null) {
campo.setValue(new Date());
}
}
}