Estoy trabajando en un proyecto que me obliga a editar las citas en el programador de SyncFusion MVC. Actualmente edito el ancho y la posición de todas las citas a través de JavaScript con el .EventRendered("onEventRendered") en el archivo .cshtml.
Me encontré con un problema cuando edito el ancho y la posición de varias citas que ocurren al mismo tiempo. Mi código JavaScript se ejecuta como debería, pero en algún lugar (supongo que en otro archivo .js) se sobrescribe y cambia los valores a los valores predeterminados. Ejemplo de lo que me gustaría y lo que es actualmente
Estoy editando el programador predeterminado que se genera automáticamente y así es como renderizo el programador real:
@{ ViewBag.Title = "ScheduleFeatures"; } @using Syncfusion.EJ2.Schedule <h2>ScheduleFeatures</h2> <li> Schedule Samples - Default</li> <li> Theme - Fabric</li> <br/> <div id="ControlRegion"> @(Html.EJS().Schedule("schedule") .Width("100%") .Height("550px") .EventRendered("onEventRendered") .EventSettings(new ScheduleEventSettings { DataSource = ViewBag.datasource }) .SelectedDate(new DateTime(2018, 2, 15)) .Render()) </div>Aquí está mi código JavaScript sobre cómo cambio el ancho y el posicionamiento de las citas:
let appointmentData = []; function onEventRendered(args) { try { args.element.children[1].innerHTML += "<i class=\"" + args.data.IconTag + "\" style=\"float: right\"></i>"; console.log(args.element.children[1]); var scheduleObj = document.querySelector('.e-schedule').ej2_instances[0]; if (!args.element) { return; } const uniqueElement = appointmentData.find((appointment) => args.data.Id == appointment.Id); if (uniqueElement == null) { appointmentData.push(args.data) } args.element.style.width = (args.data.NumberOfRows * 100) / 10 + "%";//"50%" const searchObject = appointmentData.filter((appointment) => appointment.StartTime <= args.data.StartTime && appointment.EndTime > args.data.StartTime); if (searchObject.length > 0) { var left = 0 searchObject.every(apointment => { if (apointment.Id == args.data.Id) { return false; } else { left += ((apointment.NumberOfRows * 100) / 10); } return true; }) args.element.style.left = left + "%"; } } catch (error) { console.error(error); } }Encuentre los detalles a continuación https://www.syncfusion.com/forums/173357/how-to-dynamicly-edit-the-width-and-position-of-schedule-appointments