RadScheduler に問題があります。挿入フォームが開く前に、ダブルクリックされた時間枠が利用可能かどうかを検証する必要があります。高度な挿入フォームを使用しています。残念ながら、このような OnAppointmentInserting などのイベントはありません。OnClientAppointmentInserting イベントが見つかりました。検証に使用できますが、検証が正しい場合はフォームを挿入し続けることができません。クライアント側の検証に使用するコードに従いますが、検証後に挿入フォームを表示する方法はありません:
function beforeInserting(s, e) {
var url = '';
var requestUrl = window.location.href.toLowerCase();
if (requestUrl.indexOf('/views/') != -1)
url = requestUrl.substring(0, requestUrl.indexOf('/views/')) + '/jobservice.svc/IsTimeAvailable?userId=0';
e.set_cancel(true);
var app = e.get_targetSlot();
$.ajax({
url: url,
accepts: 'application/json, text/javascript, */*',
cache: false,
success: function (r) {
if (r != '') {
alert(r);
return;
}
else {
var scheduler = $find("<%= rdJobScheduler.ClientID %>");
var newApp = new Telerik.Web.UI.SchedulerAppointment();
newApp.set_start(app.get_startTime());
newApp.set_end(app.get_endTime());
// This is not working properly it just send OnInserted event to server
// scheduler.insertAppointment(newApp);
}
},
error: function (err, text, xhr) {
alert(text);
}
});
}