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 调度程序不显示数据的主要内容,如果未能解决你的问题,请参考以下文章