ASP。NET MVC调度器概述

Telerik UI for ASP。NET MVC忍者形象

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

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

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

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

初始化调度器

下面的示例演示如何定义调度器。

@(Html.Kendo().Scheduler< kendo . mvc . samples . models .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);f.RecurrenceID (f => f.RecurrenceID);m.字段(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 {private ISchedulerEventService taskService;public SchedulerController(ISchedulerEventService schedulerTaskService) {taskService = schedulerTaskService;} public IActionResult Index() {return View();} 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)); } }

基本配置

下面的示例演示调度器的基本配置。

@(Html.Kendo(). scheduler < kendo . mv . example . models . scheduler . meetingviewmodel >() . 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. resources。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") ) )

功能和特性

事件

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

对象的订阅方式,下面的示例演示如何订阅数据绑定而且数据绑定事件。

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