0

我正在将 Telerik RadScheduler 与 Web 服务绑定一起使用。

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

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

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

我的问题是 - 如果此服务器端验证失败,我怎样才能让客户端约会移回它的起源?我可以在其中捕获状态或消息,OnClientRequestFailed但是有没有办法在 Web 服务调用后取消移动事件,或者将约会移回?

4

1 回答 1

0

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

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

  1. 不要在 UpdateAppointment 中为验证错误抛出异常。我在 Session 中设置了错误消息(找不到将其从 Provider 传递回 Web Method 的方法)
  2. 我创建了一个类MySchedulerResult继承自SchedulerOperationResult<AppointmentData>, 具有一个ErrorMessage属性。
  3. 我的UpdateAppointmentWeb 方法返回此 MySchedulerResult 并将返回的约会分配Provider.UpdateAppointment给它。它检查 Session 以查看是否发生了验证错误,ErrorMessage如果发现则将属性设置为此值。
  4. OnClientRequestSuccess在客户端的方法会解压这个结果,如果找到就会弹出错误消息。同时,约会数据正在重新加载,并且应该将更改后的约会恢复到其原始时间段。

我在这里找到了有关调度程序结果类的更多信息:http: //docs.telerik.com/devtools/aspnet-ajax/controls/scheduler/web-service-binding/returning-extra-data-from-the-web-service

于 2016-02-02T01:57:12.847 回答