KendoUI 调度程序不显示数据

Posted

技术标签:

【中文标题】KendoUI 调度程序不显示数据【英文标题】:KendoUI scheduler doesn't display data 【发布时间】:2013-09-28 02:30:28 【问题描述】:

我在显示 KendoUI 调度程序数据(调度程序事件或您想调用的任何内容)时遇到了一些困难。调用是在数据进入时进行的,但它不显示它,也不会导致任何错误。我已经粘贴了代码和回复,希望有人知道我做错了什么。

是的,我一直在 json/jsonp 作为数据类型和批处理在所有可能的组合中设置为 true 和 false 之间切换。

守则:

  var my_dataSource;

    $("#calendar").kendoScheduler(
        height: "650px",
        timezone: "Etc/UTC",
        views: [
            "day",
            "week",
             type: "month", selected: true ,
            "agenda"
        ]
    );

    my_dataSource = new kendo.data.SchedulerDataSource(
        transport: 
            read: 
                url: "ashx/Calendar/GetCalendarData.ashx",
                cache: false,
                data: 
                    dtFrom: convertDate($("#calendar").data("kendoScheduler").view().startDate()),
                    dtUntil: convertDate($("#calendar").data("kendoScheduler").view().endDate()),
                    DateInterval: "month",
                    dateIntervalSteps: "1",
                    Categories: ""
                ,
                dataType: "jsonp"
            ,
            batch: true,
            parameterMap: function (options, operation) 
                //console.log(JSON.stringify(options));
                return options;
            
        ,
        schema: 
            data: "Data",
            model: 
                id: "taskID",
                fields: 
                    taskID:  from: "id", type: "number" ,
                    title:  from: "summary", defaultValue: "No title", validation:  required: false  ,
                    start:  type: "date", from: "startTime" ,
                    end:  type: "date", from: "endTime" ,
                    //startTimezone:  from: "StartTimezone" ,
                    //endTimezone:  from: "EndTimezone" ,
                    //description:  from: "Description" ,
                    //recurrenceId:  from: "RecurrenceID" ,
                    //recurrenceRule:  from: "RecurrenceRule" ,
                    //recurrenceException:  from: "RecurrenceException" ,
                    ownerId:  from: "eOwnerId", defaultValue: 1 ,
                    isAllDay:  type: "boolean", from: "allDay" 
                
            
        
    );

    var cal = $("#calendar").data("kendoScheduler");
    cal.dataSource = my_dataSource;

回应:

[

"id": 329837,
"summary": "Lorem Ipsum",
"startTime": "Date(1375862400)",
"endTime": "Date(1377273600)",
"allDay": true,
"calendar": "cat10001",
"eOwnerId": 1569,
"Title": "Project Meeting"
,

"id": 334664,
"summary": "Lorem Ipsum",
"startTime": "Date(1376985600)",
"endTime": "Date(1376989200)",
"allDay": false,
"calendar": "cat10002",
"eOwnerId": 130,
"Title": "Meeting"
,

"id": 334659,
"summary": "Lorem Ipsum",
"startTime": "Date(1377007200)",
"endTime": "Date(1377010800)",
"allDay": false,
"calendar": "cat10003",
"eOwnerId": 1810,
"Title": "Task"

]

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,但没有出现错误。修复它的是(愚蠢但)我正在设置开始和结束时区,即。 task.setEndTimezone(TimeZone.getTimeZone("UTC"));,只需将它们设置为空,而时区仍设置在任务返回的开始和结束日期时间中。希望这会有所帮助。

【讨论】:

完全忘记发布解决方案,但我使用了非常相似的方法来解决问题,因此我接受您的建议作为有效答案:) 感谢您的贡献。【参考方案2】:

我在使用 Firefox 调试时看到“ReferenceError: convertDate is not defined”...

dtFrom: convertDate($("#calendar").data("kendoScheduler").view().startDate()), dtUntil: convertDate($("#calendar").data("kendoScheduler").view().endDate()),

您可能需要确保包含所有适当的 .js 文件

【讨论】:

只是一个简单的函数,可以将日期转换为适当的格式,以便服务返回我需要的内容。 function convertDate(inputFormat) var d = new Date(inputFormat || Date.now()), month = '' + (d.getMonth() + 1), day = '' + d.getDate(), year = d.getFullYear(); if (month.length < 2) month = '0' + month; if (day.length < 2) day = '0' + day; console.log([year, month, day].join('-')); return [year, month, day].join('-');

以上是关于KendoUI 调度程序不显示数据的主要内容,如果未能解决你的问题,请参考以下文章

如何删除我不想显示的部分 Kendo UI 调度程序?

使用 AngularJS 服务代替 KendoUI 调度程序中的 url

KendoUI 图表不接受 JSON 数据的键中的数字

更改 Kendo UI 调度程序中事件的宽度

如何向我的 Kendo UI 调度程序添加新的布尔值?

我的KendoUI中没有显示JQuery Grid的图标