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.

Planificador de Kendo para Angular – al hacer clic en el botón, mostrar el formulario de creación de eventos.

Estoy implementando el programador de Kendo para Angular en nuestra aplicación. Mi problema es que quiero tener un botón en la barra de herramientas que permita al usuario agregar un nuevo evento, normalmente por defecto el usuario debe hacer clic dos veces en la celda del calendario y entonces se muestra el formulario. ¿Cómo lograrlo? Estaba intentando agregar un nuevo evento mediante el envío de un evento keydown al hacer clic en el botón “agregar”, pero no funciona (normalmente cuando tengo el enfoque en el programador de Kendo y presiono “c” en el teclado, aparece el formulario). Mi segunda idea fue llamar al componente “addEvent”, que es un emisor de eventos en la biblioteca de Kendo, pero solo captura los valores del formulario, no los valores actuales. ¿Alguna idea?

Mi código para agregar un nuevo evento:

addNewEvent(component: SchedulerComponent) {
    const scheduler = document.getElementsByTagName('kendo-scheduler')[0];

    scheduler.dispatchEvent(
        new KeyboardEvent(
            'keydown', {key: 'c'} //primera solución
        )
    );

    component.addEvent({//segunda solución
        start: new Date(), //cuando se guarda, solo se rellenan los campos de inicio y fin, pero solo con esos valores, no con los seleccionados en el formulario.
        end: new Date(),
    });
}
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para lograr la funcionalidad deseada de agregar un nuevo evento con un solo clic en un botón en la barra de herramientas, podemos usar el método addEvent() integrado de kendo-scheduler.

    Aquí está la versión actualizada del método addNewEvent():

    addNewEvent(component: SchedulerComponent) {
      component.scheduler.wrapper.nativeElement.querySelector('.k-add-event').click();
    }
    

    Este método accede al elemento DOM para el botón Agregar evento en la barra de herramientas (usando querySelector()), y luego activa programáticamente un evento de clic en ese botón. Esto abrirá el formulario de nuevo evento, permitiendo al usuario agregar un nuevo evento sin tener que hacer clic dos veces en una celda del calendario.

    Tenga en cuenta que esta solución depende de la clase de CSS k-add-event para persistir en las versiones de kendo, y por lo tanto puede requerir mantenimiento con el tiempo. Sin embargo, es una forma sencilla y confiable de lograr la funcionalidad deseada.

Comments are closed.