Tengo una ExtJS campo de Fecha. Durante alguna operación en la aplicación, valor mínimo y valor máximo que se le ha asignado a la fecha de campo. El valor mínimo y el valor máximo son 4 años antes de la actual dat, pero cuando el selector de fecha, se abre, se abre a la movilidad fechas actuales. El usuario tiene que desplazarse manualmente de nuevo 4 años para seleccionar una fecha. De todos modos puedo actualizar el selector de fecha para abrir mostrando la fecha entre el valor mínimo y el valor máximo ?

Agregar código:

cmpDt.setMinValue(new Date(2000, 0, 1));
cmpDt.setMaxValue(new Date(2004, 0, 1));

esto establece el mínimo y el máximo valor. No puedo utilizar setValue() porque inialises/cambios en el textfield. Quiero el campo de texto para obtener el valor sólo en la selección del selector de fecha.

Gracias

InformationsquelleAutor Zaje | 2012-04-20

2 Comentarios

  1. 5

    Usted tiene que establecer un valor inicial utilizando el value propiedad de la Ext.form.field.DateView:

    {
        ...,
        minValue: new Date(2000, 0, 1),
        maxValue: new Date(2004, 11, 31),
        value: new Date(2002, 5, 15),
        ...
    }

    EDITAR después de más información de la OP:

    Puede anular la onExpand método que inicializa el valor del selector. El original parece (dado que el uso de ExtJS 4 – 3 pero no debe ser muy diferente):

    ...,
    onExpand: function() {
        var value = this.getValue();
        this.picker.setValue(Ext.isDate(value) ? value : new Date());
    },
    ...

    Podría invalidar el método para leer:

    ...,
    onExpand: function() {
        var value = this.getValue(),
            myDefaultDate = /* do some processing to determine the default date*/;
        this.picker.setValue(Ext.isDate(value) ? value : myDefaultDate);
    },
    ... 

    Añadir la de reemplazar a la forma inicial de configuración en el campo.

    • Yo puedo añadir que en la configuración inicial como el valor mínimo y el valor máximo a obtener en conjunto entre algunos operación que se realizó.
    • Hola, Después de la aplicación del código de arriba de mi selector no se está expandiendo o rellenar en extjs 4.
  2. 0

    Para cualquier persona interesada en una EXTJS 3 solución a este problema, he hecho el siguiente código.

    Permite pasar initialDateToShowOnPicker como una config para el Ext.DatePicker al declarar que, si es necesario.

    También le permite llamar a setInitialDateToShowOnPicker(initialDateToShowOnPicker) en el selector de fechas componente para establecer de forma dinámica.

    Ambos requieren de una Fecha() tipo: para ser utilizado, y no puede ser un valor ya establecido en el selector de fecha.

    if (Ext.versionDetail && Ext.versionDetail.major == 3) {
    Ext.form.DateField.prototype.setInitialDateToShowOnPicker = function (initialDateToShowOnPicker) {
    this.initialDateToShowOnPicker = initialDateToShowOnPicker;
    };
    Ext.form.DateField.override({
    onTriggerClick: function() {
    if(this.disabled){
    return;
    }
    if(this.menu == null){
    this.menu = new Ext.menu.DateMenu({
    hideOnClick: false,
    focusOnSelect: false
    });
    }
    this.onFocus();
    Ext.apply(this.menu.picker,  {
    minDate : this.minValue,
    maxDate : this.maxValue,
    disabledDatesRE : this.disabledDatesRE,
    disabledDatesText : this.disabledDatesText,
    disabledDays : this.disabledDays,
    disabledDaysText : this.disabledDaysText,
    format : this.format,
    showToday : this.showToday,
    startDay: this.startDay,
    minText : String.format(this.minText, this.formatDate(this.minValue)),
    maxText : String.format(this.maxText, this.formatDate(this.maxValue)),
    initialDateToShowOnPicker: this.initialDateToShowOnPicker //Date() type
    });
    this.menu.picker.setValue(this.getValue() || this.initialDateToShowOnPicker || new Date());
    this.menu.show(this.el, "tl-bl?");
    this.menuEvents('on');
    }
    });     }

Dejar respuesta

Please enter your comment!
Please enter your name here