Telerik RadScheduler在服务器端验证错误

时间:2016-02-02 00:46:09

标签: telerik radscheduler telerik-scheduler

我正在使用带有Web服务绑定的Telerik RadScheduler。

当我将约会拖到另一个时间段时,我在OnClientAppointmentMoveEnd中进行了一些客户端验证,如果成功,我设置args.set_cancel(true);

然后点击我的网络服务方法UpdateAppointment

此Web服务调用中的服务器端代码然后根据数据库查询执行一些额外的验证。

我的问题是 - 如果此服务器端验证失败,我如何让客户端约会回到原来的位置?我可以在OnClientRequestFailed中捕获状态或消息,但有没有办法在Web服务调用后取消移动事件,或者将约会移回?

1 个答案:

答案 0 :(得分:0)

我刚刚找到了自己的答案 - 调用UpdateAppointment Web方法后,调度程序将再次调用GetAppointments,因此应在客户端重新加载正确的数据。

对于其他可能会觉得有用的人:

  1. 不要在UpdateAppointment中抛出异常以获取验证错误。我在Session中设置了错误消息(无法找到将其从提供者传递回Web方法的方法)
  2. 我创建了一个继承自MySchedulerResult的{​​{1}}类,SchedulerOperationResult<AppointmentData>属性。
  3. 我的ErrorMessage Web方法返回此MySchedulerResult,并将从UpdateAppointment返回的约会分配给它。它检查会话以查看是否发生了验证错误,并将Provider.UpdateAppointment属性设置为此值(如果找到)。
  4. 客户端上的ErrorMessage方法解压缩此结果并弹出错误消息(如果找到)。同时,约会数据正在重新加载,并且应该在原来的时间段内更改预约。
  5. 我在此处找到了有关调度程序结果类的更多信息:http://docs.telerik.com/devtools/aspnet-ajax/controls/scheduler/web-service-binding/returning-extra-data-from-the-web-service