填充Kendo读取数据源

时间:2013-08-07 13:09:31

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

我无法让我的调度程序填充从外部函数中提取的数据。它是kendo UI。我无法让我的日历显示从我的数据库中提取的任何任命。有没有人有任何想法?感谢

 $(function () {
        $("#scheduler").kendoScheduler({
            date: new Date("2013/6/13"),
            startTime: new Date("2013/6/13 07:00 AM"),
            height: 600,
            views: [
            "day",
                { type: "week", selected: true },
                "month",
                "agenda"
            ],
            timezone: "Etc/UTC",
            dataSource: {
                batch: true,
                transport: {
                    read: {
                        url: "/Team/Calendar/PopulateCalendar/",
                        dataType: "json",

                    },
                    update: {
                        url: "http://demos.kendoui.com/service/tasks/update",
                        dataType: "jsonp"
                    },
                    create: {
                        url: "http://demos.kendoui.com/service/tasks/create",
                        dataType: "jsonp"
                    },
                    destroy: {
                        url: "http://demos.kendoui.com/service/tasks/destroy",
                        dataType: "jsonp"
                    },
                    parameterMap: function (options, operation) {
                        if (operation !== "read" && options.models) {
                            return { models: kendo.stringify(options.models) };
                        }
                    }
                },
                schema: {
                    model: {

                        id: "taskId",
                        fields: {
                            taskId: { from: "TaskID", type: "number" },
                            title: { from: "Title", defaultValue: "No title", validation: { required: true } },
                            start: { type: "date", from: "Start" },
                            end: { type: "date", from: "End" },
                            startTimezone: { from: "StartTimezone" },
                            endTimezone: { from: "EndTimezone" },
                            description: { from: "Description" },
                            recurrenceId: { from: "RecurrenceID" },
                            recurrenceRule: { from: "RecurrenceRule" },
                            recurrenceException: { from: "RecurrenceException" },
                            ownerId: { from: "OwnerID", defaultValue: 1 },
                            isAllDay: { type: "boolean", from: "IsAllDay" }

                        }
                    }

                },
                filter: {
                    logic: "or",
                    filters: [
                        { field: "ownerId", operator: "eq", value: 1 },
                        { field: "ownerId", operator: "eq", value: 2 }
                    ]
                }
            },
            resources: [
                {
                    field: "ownerId",
                    title: "Owner",
                    dataSource: [
                        { text: "Alex", value: 1, color: "#f8a398" },
                        { text: "Bob", value: 2, color: "#51a0ed" },
                        { text: "Charlie", value: 3, color: "#56ca85" }
                    ]
                }
            ]
        });

        $("#people :checkbox").change(function (e) {
            var checked = $.map($("#people :checked"), function (checkbox) {
                return parseInt($(checkbox).val());
            });

            var filter = {
                logic: "or",
                filters: $.map(checked, function (value) {
                    return {
                        operator: "eq",
                        field: "ownerId",
                        value: value
                    };
                })
            };

            var scheduler = $("#scheduler").data("kendoScheduler");

            scheduler.dataSource.filter(filter);
        });
    });

以下是从中提取数据的功能。

   public ActionResult PopulateCalendar()
        {
            using (var entities = new OpenRoad.Data.Repository.OpenRoadEntities())
            {
                var appointments = (from e in entities.Appointments
                                    where e.UserId == OpenRoad.Web.Session.UserId

                                    select new Models.Calendar
                                    {
                                        TaskID = e.AppointmentId,
                                        UserId = e.UserId ?? '1',
                                        Title = e.Subject,
                                        Description=e.Description,
                                        Start = e.StartTimeUtc ?? DateTime.Now,
                                        End = e.EndTimeUtc ?? DateTime.Now,
                                        IsAllDay = false,
                                        RecurrenceRule= null,
                                        RecurrenceID=null,
                                        RecurrenceException=null,
                                        StartTimezone=null,
                                        EndTimezone=null,

                                    }).OrderBy(o => o.Start).ToList();

                return Json(appointments, JsonRequestBehavior.AllowGet);
            }             
        }

3 个答案:

答案 0 :(得分:0)

尝试使用第一个小写字母在服务器上定义所有属性;)作为第二步,您可以删除“schema:{model:{”block因为它是假的...... :-D

答案 1 :(得分:0)

尝试传入DataSourceRequest并将列表转换为一个。

PopulateCalendar([DataSourceRequest] DataSourceRequest request)

返回Json(taskModelList.ToDataSourceResult(request));

答案 2 :(得分:-1)

我认为你需要dataType:“jsonp”而不是“json”

阅读:{                         url:“/ Team / Calendar / PopulateCalendar /”,                         dataType:“json”,