【问题标题】:Telerik RadScheduler cancel appointment move after Server-Side validation errorTelerik RadScheduler 在服务器端验证错误后取消预约移动
【发布时间】:2016-05-10 15:34:38
【问题描述】:

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

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

然后它会访问我的 Web 服务方法 UpdateAppointment

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

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

【问题讨论】:

    标签: telerik radscheduler telerik-scheduler


    【解决方案1】:

    我刚刚找到了自己的答案—— 在调用UpdateAppointment web 方法后,调度器会再次调用GetAppointments,所以客户端应该重新加载正确的数据。

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

    1. 不要在 UpdateAppointment 中为验证错误抛出异常。我在 Session 中设置了错误消息(找不到将其从 Provider 传递回 Web Method 的方法)
    2. 我创建了一个继承自 SchedulerOperationResult<AppointmentData> 的类 MySchedulerResult,具有 ErrorMessage 属性。
    3. 我的UpdateAppointment Web 方法返回此 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-21
      • 2017-03-03
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 2013-08-24
      • 2016-01-06
      相关资源
      最近更新 更多