vish_pro Ответов: 0

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 имеет отличную поддержку для тех, кто покупает его дорогие элементы управления.

0 Ответов