Telerik RadScheduler отменяет перемещение встречи после ошибки проверки на стороне сервера

Я использую Telerik RadScheduler с привязкой к веб-сервису.

Когда я перетаскиваю встречу в другой временной интервал, я выполняю некоторую проверку на стороне клиента в OnClientAppointmentMoveEndи если это удастся, я установлю args.set_cancel(true);

Затем он попадает в мой метод веб-службы UpdateAppointment,

Мой серверный код в этом вызове веб-службы затем выполняет дополнительную проверку на основе запроса к базе данных.

Мой вопрос - если эта проверка на стороне сервера не удалась, как я могу получить назначение на стороне клиента, чтобы вернуться туда, где оно возникло? Я могу поймать статус или сообщение в OnClientRequestFailed но есть ли способ отменить событие перемещения после вызова веб-службы или перенести встречу назад?

1 ответ

Я только нашел свой ответ - После UpdateAppointment веб-метод вызывается, тогда планировщик вызовет GetAppointments опять же, поэтому правильные данные должны быть перезагружены на клиенте.

Для тех, кто может найти это полезным:

  1. Не выбрасывайте Исключение в UpdateAppointment для ошибки проверки. Я установил сообщение об ошибке в сеансе (не смог найти способ передать его обратно из провайдера в веб-метод)
  2. Я создал класс MySchedulerResult наследование от SchedulerOperationResult<AppointmentData>, с ErrorMessage имущество.
  3. мой UpdateAppointment Веб-метод возвращает этот MySchedulerResult и назначает встречи, возвращаемые из Provider.UpdateAppointment к этому. Он проверяет сеанс, чтобы увидеть, произошла ли ошибка проверки, и устанавливает ErrorMessage свойство к этому значению, если найдено.
  4. мой OnClientRequestSuccess Метод на стороне клиента распаковывает этот результат и выдает сообщение об ошибке, если найдено. Между тем, данные о встрече перезагружаются и должны иметь измененную встречу в исходном временном интервале.

Я нашел больше информации о классе результатов планировщика здесь: http://docs.telerik.com/devtools/aspnet-ajax/controls/scheduler/web-service-binding/returning-extra-data-from-the-web-service

Другие вопросы по тегам