es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Evitar que DateTimePicker se cierre automáticamente.

Tengo un componente de Kendo llamado kendo-datetimepicker (proyecto angular, kendo-angular)

Cuando abro el calendario, comienzo a escribir la fecha (día, mes, año) y la hora (horas, minutos) en el campo de entrada, justo al final cuando selecciono los minutos, el calendario se cierra automáticamente.

El problema se puede verificar aquí: https://www.telerik.com/kendo-angular-ui/components/dateinputs/datetimepicker/date-time-limits/

¿Hay alguna forma de evitar que el calendario se cierre?

Y cerrarlo solo cuando haga clic en cancelar o configurar.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para evitar que el calendario se cierre al escribir en el campo de entrada, puedes usar el atributo [popupPreserve]="true" en el componente kendo-datetimepicker. Esto mantendrá abierto el calendario mientras se escribe en el campo de entrada.

    Para cerrar el calendario solo cuando se hace clic en el botón cancelar o establecer, puedes usar el evento (close)="onClose()" en el componente kendo-datetimepicker, y luego implementar la función onClose() para verificar si se hizo clic en el botón cancelar o establecer. Si no se hizo clic en ninguno de los botones, puedes volver a abrir el calendario usando el método toggle() en el componente kendo-datetimepicker.

    Ejemplo:

    <kendo-datetimepicker [popuppreserve]="true" (close)="onClose()">
    </kendo-datetimepicker>
    
    ...
    
    import { Component, ViewChild } from '@angular/core';
    import { DateTimePickerComponent } from '@progress/kendo-angular-dateinputs';
    
    @Component({
      selector: 'my-component',
      template: `
        <kendo-datetimepicker [popuppreserve]="true" (close)="onClose()">
        </kendo-datetimepicker>
      `
    })
    export class MyComponent {
      @ViewChild(DateTimePickerComponent)
      private dateTimePicker: DateTimePickerComponent;
    
      onClose() {
        if (!this.dateTimePicker.popupService.isPopupOpen()) {
          // ni el botón cancelar ni el botón establecer fueron presionados, así que vuelve a abrir el calendario
          this.dateTimePicker.toggle();
        }
      }
    }
    

Comments are closed.