在Kendo Scheduler弹出窗口中隐藏控件

时间:2014-04-10 08:42:35

标签: asp.net-mvc razor kendo-ui kendo-scheduler

我正在使用Scheduler控件。双击事件将打开一个对话框以允许对其进行编辑。在其他控件中,对话框有一个时区按钮和一个所有者下拉。

如何删除这些?

非常感谢任何帮助。

感谢。

阿布拉

1 个答案:

答案 0 :(得分:2)

如果您希望自定义调度程序的弹出编辑器,一种方便的方法是创建一个调度程序编辑器模板以将其关闭。由于缺少Kendo(documented here)调度程序的ASP.NET MVC Wrapper版本的文档,我经历了很多心痛,但是我的调查结果中有一个很好的(可下载的)示例。您可以下载该示例here

调度程序MVC Wrapper的调用:

.Editable(edit =>
{
    edit.TemplateName("SchedulerEditorTemplate");
})

我的结构与视图和部分视图:

/Home (folder)
    /EditorTemplates (folder)
        SchedulerEditorTemplate.cshtml
    Index.cshtml

部分视图对于SchedulerEditorTemplate来说只是一个表格,就像你在MVC网页应用程序中的其他地方一样,包含@model等等。你只需要构建一个编辑模板,就像一个带有表单的普通View页面一样。只需确保Partial View中使用的Model类与用于调度程序的Read,Create,Update和Destroy的Ajax方法相同,以确保获得所需的所有数据。

以下是我的日历视图模型示例:

using Kendo.Mvc.UI;
using System;
using System.Linq;

namespace MyApp.ViewModels.Calendars
{
    public class CalendarAppointmentViewModel : ISchedulerEvent
    {
        // Mandatory Custom Fields
        public int AppointmentId { get; set; }
        public int EmployeeId { get; set; }
        public string EmployeeName { get; set; }
        public bool Reminder { get; set; }
        public bool IsPending { get; set; }
        public bool IsActive { get; set; }
        public bool IsCompleted { get; set; }
        public bool IsCancelled { get; set; }

        // Kendo Fields
        public string Title { get; set; }
        public string Description { get; set; }
        public string Recurrence { get; set; }
        public string StartTimezone { get; set; }
        public string EndTimezone { get; set; }

        private DateTime start;
        public DateTime Start
        {
            get
            {
                return start;
            }
            set
            {
                start = value.ToUniversalTime();
            }
        }


        private DateTime end;
        public DateTime End
        {
            get
            {
                return end;
            }
            set
            {
                end = value.ToUniversalTime();
            }
        }

        public string RecurrenceRule { get; set; }
        public int? RecurrenceID { get; set; }
        public string RecurrenceException { get; set; }
        public bool IsAllDay { get; set; }

    }
}

您需要为任何自定义模型类执行的主要操作之一是从ISchedulerEvent继承,否则您的自定义模型将无法正常工作。

public class CalendarAppointmentViewModel : ISchedulerEvent
{
    ...
}