调度程序概述

Telerik UI for ASP。NET MVC忍者图像

调度程序是Telerik UI for ASP。NET MVC,一个具有 110+ 组件的专业级UI库,用于构建现代和功能丰富的 应用程序。想要试用它,请注册一个30天的免费试用。

Telerik UI Scheduler HtmlHelper for ASP。NET MVC是Kendo UI Scheduler小部件的服务器端包装器。

Scheduler显示一组事件、约会或任务。它支持在不同的视图中显示预定的事件——一天、整个星期或几个月,或者作为需要完成的任务列表。

从R1 2017版本开始,当用户编辑一个系列时,异常不再被自动删除。对特定事件所做的更改将在系列编辑期间持久保存。如果一个系列包含异常,则Scheduler将呈现一个重置系列控件中的按钮编辑系列的对话框,该对话框允许用户通过删除现有的异常来重置系列。

初始化调度器

下面的示例演示如何定义Scheduler。

@(Html.Kendo().Scheduler< kendo . mvc . example . modeling .Scheduler. taskviewmodel >() .Name("scheduler") .Date(new DateTime(2013, 6,13)) .StartTime(new DateTime(2013, 6,13,7,00, 00)) .Height(600) .Views(views => {views. dayview ();的观点。WeekView(WeekView => WeekView . selected (true));views.TimelineView ();}) .Timezone(“等)/ UTC”.DataSource (d = > d得(m = > {m.Id (f = > f.TaskID);m.RecurrenceId(f => f. recurrenceid);m.Field(f => f. title)。DefaultValue(“无标题”);m.Field(f => f. ownerid).DefaultValue(1);}) .Read("Read", "Scheduler") .Create("Create", "Scheduler") .Destroy("Destroy", "Scheduler") .Update("Update", "Scheduler")))
公共类SchedulerController: Controller{私有ISchedulerEventService taskService;public SchedulerController(ISchedulerEventService schedulerTaskService) {taskService = schedulerTaskService;}公共IActionResult Index(){返回视图();} public virtual JsonResult Read([DataSourceRequest] DataSourceRequest request) {return Json(taskService.GetAll().ToDataSourceResult(request));} public virtual JsonResult Destroy([DataSourceRequest] DataSourceRequest request, TaskViewModel task) {if (ModelState.IsValid) {taskService. JsonResult Destroy([DataSourceRequest] DataSourceRequest request, TaskViewModel task) {删除(任务、状态);}返回Json(new[] {task}。ToDataSourceResult(请求状态));} public virtual JsonResult Create([DataSourceRequest] DataSourceRequest request, TaskViewModel task) {if (ModelState.IsValid) {taskService. JsonResult Create([DataSourceRequest] DataSourceRequest request, TaskViewModel task) {插入(任务、状态);}返回Json(new[] {task}。ToDataSourceResult(请求状态)); } public virtual JsonResult Update([DataSourceRequest] DataSourceRequest request, TaskViewModel task) { //example custom validation: if (task.Start.Hour < 8 || task.Start.Hour > 22) { ModelState.AddModelError("start", "Start date must be in working hours (8h - 22h)"); } if (ModelState.IsValid) { taskService.Update(task, ModelState); } return Json(new[] { task }.ToDataSourceResult(request, ModelState)); } }

基本配置

下面的示例演示了Scheduler的基本配置。

@(Html.Kendo(). scheduler < kendo . mvc . example . modeling . scheduler . meetingviewmodel >() . name ("scheduler") . currenttimemarker (true) . editable (true) . date (new DateTime(2013, 6,13)) .pdf (pdf => pdf . filename ("SchedulerExport.pdf") . proxyurl (Url. scheduler). name ("scheduler") . currenttimemarker (true) . editable (true) . date (new DateTime(2013, 6,13)) .pdf (pdf => pdf . filename ("SchedulerExport.pdf") . proxyurl (Url。Action("Pdf_Export_Save", "Scheduler"))) .Timezone("Etc/UTC") .Toolbar(t => t. pdf ()) .StartTime(new DateTime(2013, 6,13,7,00, 00)) .Height(600) .Views(views => {views. dayview ();views.WeekView ();的观点。MonthView(MonthView => MonthView . selected (true));views.AgendaView ();views.TimelineView ();}) .Group(group => {group. resources ("Rooms");group.Date(真正的);}) . resources (resource => {resource.})。Add(m => m. roomid) .Title("Room") .Name("Rooms") .DataTextField("Text") .DataValueField("Value") .DataColorField("Color") .BindTo(new[] {new {Text = "会议室101",Value = 1, Color = "#6eb3fa"}, new {Text = "会议室201",Value = 2, Color = "#f58a8a"}}); }) .DataSource(d => d .Model(m => { m.Id(f => f.MeetingID); m.Field(f => f.Title).DefaultValue("No title"); m.RecurrenceId(f => f.RecurrenceID); }) .Read("Date_Grouping_Read", "Scheduler") .Create("Date_Grouping_Create", "Scheduler") .Destroy("Date_Grouping_Destroy", "Scheduler") .Update("Date_Grouping_Update", "Scheduler") ) )

功能和特性

事件

您可以订阅所有的Scheduler事件。有关基本Scheduler事件的完整示例,请参阅演示了如何使用Scheduler的事件.的可运行示例移动而且调整事件,请参考具体事件的演示

类的订阅方式数据绑定而且数据绑定事件。

@(Html.Kendo().Scheduler< kendouischedulerdemo . modeling . projection >() .Name("scheduler") .Date(新DateTime(2013, 6,13)) .StartTime(新DateTime(2013, 6,13,10,00, 00)) .EndTime(新DateTime(2013, 6,13,23,00, 00)) .Editable(false) .Height(600) .BindTo(Model) .Events(e => {e. databound ("scheduler_dataBound");e.DataBinding(“scheduler_dataBinding”);}))