or
When I have the data source CRUD set in the Razor version of the Scheduler control AND I define events for Save and Remove the call to the Read and Destroy calls are duplicated.
Is this the correct behavior?
01.<input type="hidden" id="scheduleID" required data-required-msg="Please select a schedule."/>02. 03.@(Html.Kendo().Scheduler<DOTTReportsWebViewer.Models.TaskViewModel>()04. .Name("scheduler")05. .Editable(e=>e06. .Confirmation(false)07. .Update(false)08. .Resize(false)09. )10. .Date(DateTime.Now)11. .StartTime(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, 00, 00))12. .Views(views =>13. {14. views.DayView();15. views.WeekView(weekView => weekView.Selected(true));16. views.MonthView();17. views.AgendaView();18. })19. .Timezone("Etc/UTC")20. .DataSource(d => d21. .Model(m => {22. m.Id(f => f.TaskID);23. m.Field(f => f.OwnerID).DefaultValue(1);24. })25. 26. .Read("Tasks_Read", "Subscriptions")27. .Create("Tasks_Create", "Subscriptions")28. .Destroy("Tasks_Destroy", "Subscriptions")29. .Update("Tasks_Update", "Subscriptions")30. 31. )32. .Events(events => events33. .Save("scheduler_save")34. .Remove("scheduler_remove")35. )36. 37. 38.)39. 40. 41.<script type="text/javascript">42. 43. function scheduler_save(e) {44. 45. var scheduler = $("#scheduler").data("kendoScheduler");46. 47. if ($("#scheduleID").val() != '') {48. scheduler.removeEvent($("#scheduleID").val());49. }50. $("#scheduleID").val(e.event.uid);51. }52. 53. function scheduler_remove(e) {54. $("#scheduleID").val('');55. 56. }57. 58.</script>public class MyButtonBuilder : Kendo.Mvc.UI.Fluent.ButtonBuilder{ public bool Visible { get; set; } public override void Render() { if(Visible==false) //Do something to return empty HTML else base.Render(); }}[HttpPost]public ActionResult Read([DataSourceRequest] DataSourceRequest request){ // userService uses a client to call WebAPI action var usersList = this.userService.UsersList; var dataSource = usersList.ToDataSourceResult(request); return this.Json(dataSource, JsonRequestBehavior.AllowGet);}public UserResponseDto Users(){ var requestUri = this.ApiRequestUri("/User/User/Get/"); var response = this.GetAs<UserResponseDto>(requestUri); return response;}[HttpGet]public UserResponseDto Get(){ var result = this.userService.GetUsers(null); var response = new UserResponseDto { Users = result }; return response;}public IEnumerable<UserDto> Users(UserRequestDto userRequestDto){ // calls an store procedure and retrieves data as DTO var parameters = new[] { SqlHelper.BuildParameter(SqlDbType.VarChar, "@sUserId", ParameterDirection.Input, userRequestDto.UserId) }; using (var sqlAccess = this.sqlAccessFactory.Invoke(//some parameters)) { var collectionPocos = sqlAccess.ExecProcedureEntity<UserPoco>( "SVC_GetUser", parameters.ToArray(), true); return collectionPocos.Select( sp => new UserDto { // Fill the properties }); }}@( Html.Kendo().Grid<User>() .Name("UsersList") .DataSource(dataSource => dataSource .Ajax() .Read(read => read.Action("Read", "User")) ) .Scrollable(s => s.Virtual(true).Enabled(true)))@( Html.Flex().GridFor(m => m.UsersList, "Id", "Read", "User"))
@model IEnumerable<PASSAdmin.ViewModels.UserFacilityAdmin.ProposalTypeViewModel>@{ ViewBag.Title = "Proposal Types";}<h2>Proposal Types</h2>@Html.Partial("_LastViewedUserFacility")@{ Html.Kendo().Grid(Model) .Name("gridProposalTypes") .Columns(columns => { columns.Command(command => { command.Edit(); }).Width(50); columns.Bound(o => o.Code); columns.Bound(o => o.Description); columns.Bound(o => o.Technique_Selection_Count).Title("# Techniques"); columns.Bound(o => o.Resource_Selection_Count).Title("# Resources"); columns.Bound(o => o.Selection_Order).Title("Selection Order"); columns.Bound(o => o.Active); columns.Command(command => { command.Destroy(); }).Width(50); }) .ToolBar(toolbar => toolbar.Create()) .Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("UserFacilityAdmin/ProposalType").Window(window => window.Width(400))) .Pageable() .Sortable() .DataSource(dataSource => dataSource .Server() .Model(model => model.Id(o => o.ID)) .Create(create => create.Action("AddProposalType", "UserFacilityAdmin")) .Read(read => read.Action("ProposalTypes", "UserFacilityAdmin")) .Update(update => update.Action("UpdateProposalType", "UserFacilityAdmin")) .Destroy(destroy => destroy.Action("DeleteProposalType", "UserFacilityAdmin")) ) .Render();}<p>User Facility: <span id="userfacility"></span></p><input type="hidden" name="User_Facility_ID" id="User_Facility_ID" /><script type="text/javascript">$(document).ready(function () { $.post('/Search/GetLastViewedUserFacilityID', function (data) { $("#userfacility").html(data); $("#User_Facility_ID").val(data); });});</script><p> <span class="fieldlabel2"> Target Table: </span> @Html.TextBoxFor(c => c.TargetTable, new { style = "width:200px", Maxlength = 50 }) @Html.ValidationMessageFor(c => c.TargetTable) </p>