Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
剑道调度器:拖动事件时调用Ajax_Ajax_Drag And Drop_Kendo Ui_Kendo Scheduler - Fatal编程技术网

剑道调度器:拖动事件时调用Ajax

剑道调度器:拖动事件时调用Ajax,ajax,drag-and-drop,kendo-ui,kendo-scheduler,Ajax,Drag And Drop,Kendo Ui,Kendo Scheduler,我想知道是否有人有一个在拖动调度程序事件时如何进行异步ajax调用的工作示例。我在不同的位置(调度程序中的资源)上有一个水平分组,并希望在使用拖放时更新每个位置上禁用的时隙。我在moveStart上尝试了几种方法,但都没有取得任何进展 这就是我正在尝试的。sync函数正在调用我的API控制器,应该用新的禁用时隙(slottemplate)更新调度程序,但它永远不会到达函数的“$ajax”部分(就像被阻塞了一样) SyncDisabledTime: var asyncAjaxCalls = [];

我想知道是否有人有一个在拖动调度程序事件时如何进行异步ajax调用的工作示例。我在不同的位置(调度程序中的资源)上有一个水平分组,并希望在使用拖放时更新每个位置上禁用的时隙。我在moveStart上尝试了几种方法,但都没有取得任何进展

这就是我正在尝试的。sync函数正在调用我的API控制器,应该用新的禁用时隙(slottemplate)更新调度程序,但它永远不会到达函数的“$ajax”部分(就像被阻塞了一样)

SyncDisabledTime:

var asyncAjaxCalls = [];

for (var i = 0; i < selectedLocations.length; i++) {
    asyncAjaxCalls.push(getAsyncCall(selectedLocations[i].locationId, e.event.start));
}

ajaxIsRdy = false;

$.when.apply($, asyncAjaxCalls).done(function () {
    ajaxIsRdy = true;
    var scheduler = data();
    scheduler.view(scheduler.view().name);
});
var asyncAjaxCalls=[];
对于(变量i=0;i
getAsyncCall:

    var asyncCall = $.ajax({
    type: "GET",
    url: "/api/v1/DisabledTimeTableUnits/",
    data: {
        'mode': DisabledTimeTableUnitsMode.OnlyDisabledTimes,
        'filterOnOutsideTimeTableSet': true,
        'filterOnSeasonLimits': true,
        'filterOnOpeningHours': true,
        'filterOnBookinglock': true,
        'filterOnActivity': selectedActivityId === null ? false : true,
        'utcTime': true,
        'start': moment(_date).startOf('week').isoWeekday(1).toISOString(),
        'end': moment(_date).endOf('week').isoWeekday(7).toISOString(),
        'locationId': locationId,
        'activityId': selectedActivityId
    }
}).done(function (disabledTimeUnits) {
    for (var i = 0; i < selectedLocations.length; i++) {
        if (selectedLocations[i].locationId === locationId) {
            selectedLocations[i].disabledTimeSlots = disabledTimeUnits;
        }
    }
});

return asyncCall;
var asyncCall=$.ajax({
键入:“获取”,
url:“/api/v1/DisabledTimeTableUnits/”,
数据:{
“模式”:禁用DimetableUnitsMode.OnlyDisabledTimes,
“filterOnOutsideTimeTableSet”:true,
“筛选限制”:true,
“过滤开放小时”:没错,
“filterOnBookinglock”:true,
“filterOnActivity”:selectedActivityId==null?false:true,
“utcTime”:对,
“开始”:时刻(_date).startOf('week').isoWeekday(1).toISOString(),
“结束”:时刻(_date).endOf('week').isoWeekday(7).toISOString(),
“locationId”:locationId,
“活动ID”:selectedActivityId
}
}).done(功能(禁用时间单位){
对于(变量i=0;i
MoveStart
将在您开始拖动时触发一次<代码>移动
将在拖动事件时持续激发


但是,我建议您在
MoveEnd
事件时执行服务器端验证。

您可以发布您尝试过的代码吗?我已经发布了原始代码(在开始测试之前,我最初希望它看起来像什么)。但不知怎的,今天这一举措起到了怀疑的作用。虽然我得到了一条“UncaughtTypeError:无法读取未定义”错误消息的属性“call”,但我认为这是指代码的另一部分。我使用插槽模板来定义插槽是启用还是禁用。我希望在开始拖动事件时更新此选项,以说明可以在何处移动事件。验证偏离了方向,最后被搁置了。
    var asyncCall = $.ajax({
    type: "GET",
    url: "/api/v1/DisabledTimeTableUnits/",
    data: {
        'mode': DisabledTimeTableUnitsMode.OnlyDisabledTimes,
        'filterOnOutsideTimeTableSet': true,
        'filterOnSeasonLimits': true,
        'filterOnOpeningHours': true,
        'filterOnBookinglock': true,
        'filterOnActivity': selectedActivityId === null ? false : true,
        'utcTime': true,
        'start': moment(_date).startOf('week').isoWeekday(1).toISOString(),
        'end': moment(_date).endOf('week').isoWeekday(7).toISOString(),
        'locationId': locationId,
        'activityId': selectedActivityId
    }
}).done(function (disabledTimeUnits) {
    for (var i = 0; i < selectedLocations.length; i++) {
        if (selectedLocations[i].locationId === locationId) {
            selectedLocations[i].disabledTimeSlots = disabledTimeUnits;
        }
    }
});

return asyncCall;