带有 JSON 数据的 JavaScript Kendo 调度程序仅移动事件一次

javascript kendo scheduler with json data moves events only once

本文关键字:事件 一次 移动 数据 JSON JavaScript 调度程序 Kendo 带有      更新时间:2023-09-26

我有一个剑道调度程序,我在移动事件方面遇到了问题。我一次只能移动一个事件,然后我什至无法抓取任何事件。我认为日期有问题,但我真的不知道为什么。我尝试使用 2-3 个事件进行dataSource并且它正在工作,但是当我将完全相同的数据放入 php 并将其返回为 json 时。它不起作用。

任何帮助将不胜感激。

$("#scheduler").kendoScheduler({
                    date: new Date(),
                    startTime: new Date(today2()),
                    timezone: "Etc/UTC",
                    currentTimeMarker: false,
                    height: 800,
                    views: 
                    [
                        "week",
                        { type: "month", selected: true, eventHeight: 60}
                    ],
                    dataSource:                 
                    {
                        transport: 
                        {
                            read:
                            {
                                url: "tasks.php",
                                dataType: "json"
                            },
                             batch: true,
                             parameterMap: function (options, operation)
                             {                        
                                if (operation === "read") {
                                    var scheduler = $("#scheduler").data("kendoScheduler");
                                    var result = 
                                    {
                                        start: scheduler.view().startDate(),
                                        end: scheduler.view().endDate()
                                    }
                                    return kendo.stringify(result);
                                }
                                return kendo.stringify(options);
                            }
                        }, 
                        schema: 
                        {
                            model: 
                            {
                                id: "taskId",
                                fields: 
                                {
                                    taskId: { type: "number", from: "TT_CODE" },
                                    start: { type: "date", from: "TT_START_DATETIME"},
                                    end: { type: "date", from: "TT_END_DATETIME"},
                                    title: { from: "TT_EDIT"}
                                }
                            }
                        }
                    }
        });

带有 JSON 数据的 PHP 文件:

  $json[0]['TT_CODE'] = 1;
        $json[0]['TT_START_DATETIME'] = "2016-01-16 15:00:00";
        $json[0]['TT_END_DATETIME']= "2016-01-16 16:00:00";
        $json[0]['TT_EDIT'] = "Fast and furious 6";
echo json_encode($json);

由于您在模型中指定了startend日期,因此调度程序期望收到正确格式的日期。虽然 JSON 将日期作为字符串传递,但 javascript 仍然希望对日期字符串进行格式化。

在您的情况下,它将是:

$json[0]['TT_CODE'] = 1;
$json[0]['TT_START_DATETIME'] = "2016-01-16T15:00:00.000Z";
$json[0]['TT_END_DATETIME']= "2016-01-16T16:00:00.000Z";
$json[0]['TT_EDIT'] = "Fast and furious 6";

您也可以将日期保留原样,并在parameterMap函数中使用自定义逻辑处理字符串。

作为旁注,如果您对类型格式有疑问,请转到浏览器控制台并查看网络选项卡。 您将能够将工作服务发送的数据与 PHP 发送的数据进行比较,看看差异在哪里。