Radscheduler вызывает onclientappointmentmoveend дважды, когда я пытаюсь переместить назначение
Я сталкиваюсь с одной проблемой,связанной с telerik RadScheduler, когда я пытаюсь переместить назначение с одного ресурса на другой, а затем событие radscheduler называется OnClientAppointmentMoveEnd javascript-функцией дважды.
Я не уверен, есть ли какой-то внутренний поток, вызывающий во время встречи перемещения?
Пожалуйста, помогите в этом.
Есть предложения?
Что я уже пробовал:
Я удалил все серверные события и сделал ajax-вызов для перемещения назначения на другой ресурс.
//Javascript function call on Rad scheduler event function OnClientAppointmentMoveEnd1(sender, args) { var scheduler = null; // Cache the Scheduler object reference so we don't have to retrieve it every time scheduler = sender; try { hideActiveToolTip(); if ($("#<%=hdnEditeTicket.ClientID%>").val() == 'N') { noty({ text: 'You do not have permission!', type: 'warning', layout: 'topCenter', closeOnSelfClick: true, timeout: 1000, theme: 'noty_theme_default', closable: false, dismissQueue: true }); args.set_cancel(true); } else { var appt = args.get_appointment(); var list = appt.get_attributes(); var attrAssigned = list.getAttribute('assigned'); var _NewStartDate = args.get_newStartTime(); var todaysDate = getFormattedString(_NewStartDate); var NewTimeSlotIndex = args.get_targetSlot().get_index(); var TicketId = appt._id; var resource = args.get_targetSlot().get_resource(); var workername = resource.get_text(); if (appt != null && list != null && attrAssigned != null && NewTimeSlotIndex != null) { if (attrAssigned == "4") { noty({ text: 'It is not allowed to move the completed ticket.', type: 'warning', layout: 'topCenter', closeOnSelfClick: true, timeout: 500, theme: 'noty_theme_default', closable: false, dismissQueue: true }); args.set_cancel(true); } else if (attrAssigned != "4") { //This Popop is called Twice if (confirm('Do you really want to move ' + appt._subject + ' ?')) { //call Ajax request $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "ScheduleBoard.asmx/AppointmentMove", data: '{ "TicketId" : "' + TicketId + '", "TimeSlotIndex": "' + NewTimeSlotIndex + '", "StartTime": "' + todaysDate + '", "workername" : "' + workername + '" }', dataType: "json", async: false, success: function (data) { console.log(data.d); }, error: function (result) { alert(result.responseText); }, failure: function (result) { alert(result.responseText); } }); args.set_cancel(true); } else { args.set_cancel(true); } } } else { args.set_cancel(true); }
//RadScheduler Event <telerik:radscheduler id="RadScheduler1" runat="server" skin="Material" cssclass="RadScheduler1" rendermode="Lightweight" showheader="true" showfooter="false" width="99%" height="630px" shownavigationpane="true" customattributenames="id" displaydeleteconfirmation="false" allowdelete="false" starteditinginadvancedform="false" startinsertinginadvancedform="false" showalldayrow="true" enableexacttimerendering="true" onclientappointmentcontextmenu="OnClientAppointmentContextMenu" onclientappointmentmoveend="OnClientAppointmentMoveEnd1" <="" telerik:radscheduler="">
Sandeep Mewara
Трудно комментировать, не видя кода на стороне клиента. Похоже, событие зацепило дважды.
vish_pro
Привет,
Пожалуйста, проверьте приведенный ниже код...
//Вызов функции Javascript для события Rad scheduler
функция OnClientAppointmentMoveEnd1(отправитель, args) {
var scheduler = null;
// Кэшируйте ссылку на объект планировщика, чтобы нам не приходилось извлекать ее каждый раз
планировщик = отправитель;
пробовать {
hideActiveToolTip();
if ($("#<%=hdnEditeTicket.ClientID%>").val() == 'N') {
ноты({ текст: 'вы не имеете права!', типа: "предупреждение", макет: 'topCenter', closeOnSelfClick: да, время ожидания: 1000, тематика: 'noty_theme_default', замыкаем: ложь, dismissQueue: правда });
аргументы.set_cancel(правда);
}
еще {
ВАР СПС = аргументы.get_appointment();
список ВАР = СПС.get_attributes();
var attrAssigned = list.getAttribute('назначено');
ВАР _NewStartDate = аргументы.get_newStartTime();
var todaysDate = getFormattedString(_NewStartDate);
var NewTimeSlotIndex = args.get_targetSlot().get_index();
var TicketId = appt._id;
ВАР ресурса = аргументы.get_targetSlot().get_resource();
ВАР workername = ресурс.get_text();
если (СПС != нуль &амп;&амп; список != нуль &амп;&амп; attrAssigned != нуль &амп;&амп; NewTimeSlotIndex != нуль) {
if (attrAssigned == "4") {
ноты({ текст: 'не допускается перемещение завершено билет.', типа: "предупреждение", макет: 'topCenter', closeOnSelfClick: да, время ожидания: 500, тема: 'noty_theme_default', замыкаем: ложь, dismissQueue: правда });
аргументы.set_cancel(правда);
}
иначе если (attrAssigned != "4") {
//Этот Попоп вызывается дважды
если (убедитесь, ('вы действительно хотите переместить' + СПС._subject + ' ?')) {
//вызов Ajax-запроса
$.Аякс({
тип: "почта",
contentType: "application/json; charset=utf-8",
URL-адрес: "ScheduleBoard.на asmx/AppointmentMove",
данные: '{ "TicketId" : "' + TicketId + '", "TimeSlotIndex": "' + NewTimeSlotIndex + '", "StartTime": "' + todaysDate + '", "workername" : "' + workername + '"}',
тип данных: "json",
асинхронные: ложные,
успех: функция (данные) {
консоли.отчет(сведения.д);
},
ошибка: функция (результат) {
предупреждение(результат.responseText);
},
отказ: функция (результат) {
предупреждение(результат.responseText);
}
});
аргументы.set_cancel(правда);
}
еще {
аргументы.set_cancel(правда);
}
}
} еще { аргументы.set_cancel(правда); }
vish_pro
Вот код RadScheduler
//Событие RadScheduler
&ЛТ;из Telerik:radscheduler идентификатор="RadScheduler1" атрибут runat="сервер" кожи="материал" cssclass="RadScheduler1" параметр rendermode="легкий"
showheader="true"
showfooter="false"
width="99%" height="630px" shownavigationpane="true"
customattributenames="id"
displaydeleteconfirmation="false"
свойству allowdelete задано значение="ложь"
starteditinginadvancedform="false"
startinsertinginadvancedform="false"
showalldayrow="true"
enableexacttimerendering="true"
onclientappointmentcontextmenu="OnClientAppointmentContextMenu"
onclientappointmentmoveend="OnClientAppointmentMoveEnd1"
<="" telerik:radscheduler="">
BillWoodruff
Telerik имеет отличную поддержку для тех, кто покупает его дорогие элементы управления.