Hi,
I've spent my whole day searching for a way of reloading a scheduler's resources and data from a javascript function. So far I've reduced my code to:
var scheduler = $("#MyScheduler").data("kendoScheduler"); scheduler.resources[0].dataSource.read();scheduler.dataSource.read();
My code calls the correct methods against the controller and the new data is returned. However, the new resources are not displayed correctly. A very similar problem found here: https://www.telerik.com/forums/modifying-resources-datasource-dynamically.
As stated in the above post, "modifying the scheduler resources after it's initialization is not supported". It's also recommended that the scheduler should be destroyed and re-initialize. Nencho also provides a link to http://dojo.telerik.com/egoq which shows a jQuery method of doing so.
can someone provide me with an MVC example of doing so?
I've got a horrible feeling that I need to call the action methods in the controller manually. There must be a better way...
Here's my RazorView set up of my .
@(Html.Kendo().Scheduler<AlternativeViewModel>() .Name("AlternativeScheduler") .Date(Model.TargetDate.GetValueOrDefault(DateTime.Today).Date) .StartTime(new DateTime(2015, 03, 31, 00, 00, 00)) .EndTime(new DateTime(2015, 03, 31, 23, 59, 59)) .Selectable(true) .MajorTick(1440) .MinorTickCount(1) .AllDaySlot(true) .CurrentTimeMarker(false) .Height(720) .EventTemplate( "<div style=text-align:center> " + "<p style='margin-top: 4px'>#= title #</p>" + "<p>" + "#= kendo.toString(ShiftStart, 'HH:mm') # - #= kendo.toString(ShiftEnd,'HH:mm') #" + "</p>" + "</div>") .Editable(editable => { editable.TemplateId("SchedulerEditorAlt"); editable.Destroy(false); }) .Views(views => { views.TimelineWeekView(timeline => timeline.EventHeight(80).Title("Week").Selected(true)) .Footer(false) .ShowWorkHours(false) .DateHeaderTemplate("#=kendo.toString(date, 'ddd dd MMM')# "); }) .Timezone(Model.TimeZone) .CurrentTimeMarker(c => c.UseLocalTimezone(false)) .Group(group => group.Resources("ServiceName").Orientation(SchedulerGroupOrientation.Vertical)) .Events(e => { e.ResizeEnd("Roster.onResizeEndAlt"); e.Edit("Roster.onEditEventAlt"); e.Save("Roster.onSaveAlt"); e.Cancel("Burger.onClose"); e.DataBound("Burger.onAltDataBound"); e.MoveEnd("Burger.onMoveEndAlt"); e.Navigate("Burger.onAltNavigate"); e.Change("Burger.onSchedulerChangeAlt"); }) .Resources(resource => resource .Add(m => m.ShiftPatternId) .Title("ServiceName") .Name("ServiceName") .Multiple(true) .DataTextField("ServiceName") .DataValueField("ShiftPatternId") .DataColorField("Color") .DataSource(source => source .Read(read => read .Action("GetServiceNames", "Scheduler").Type(HttpVerbs.Post) .Data("Burger.getSchedulerDataWithFormat") ) ) ) .Resources(resource => resource .Add(m => m.Status) .Title("ShiftStatusId") .Name("Status") .DataTextField("WorkerName") .DataValueField("BurgerStatusId") .DataColorField("Color") .DataSource(source => source .Read(read => read .Action("GetShiftStatusResources", "Scheduler") .Data("Burger.getSchedulerDataWithoutDateCheck") ) ) ) .DataSource(d => d .Model(m => { m.Id(f => f.XmlId); m.Field(f => f.ServiceName).DefaultValue("No title"); m.Field(f => f.SuggestedUserName); m.Field(f => f.Status); }) .Read(read => read .Action("AlternativeSchedulerRead", "Scheduler") .Data("Burger.getSchedulerDataWithoutDateCheck") ) .ServerOperation(true) ))Thanks in advance,
Paul
