1

これはsignalrを使用したコードです。情報をハブに正常に送信し、ハブはclients.all.Notifiyなどを実行しています..あなたが推奨するコードサンプルを追加しました. 1 回のクリックでハブから返された情報が挿入されるように、scheduler_change(e) .. 何らかの理由で、新しい予約がスケジューラーに表示されません。

 function scheduler_change(e) {
        var start = e.start; //selection start date
        var end = e.end; //selection end date
        var slots = e.slots; //list of selected slots
        var events = e.events; //list of selected Scheduler events


        var notificationHub = $.connection.MyBookingHub;
        notificationHub.client.Notify = function (MyStart, MyEnd, MyMessage) {

       //     kendoConsole.log(kendo.toString(new Date(MyStart) + " " + new Date(MyEnd) + " " + MyMessage));


            var scheduler = $("#scheduler").data("kendoScheduler", function () {
                scheduler.dataSource.add({
                    start: new Date(MyStart),
                    end: new Date(MyEnd),
                    title: "Costas Interview"
                });
           });

        };


        $.connection.hub.start().done(function () {

            notificationHub.server.sendNotification(start, end, "Booking Title");

        });
    }
4

1 に答える 1

0

client.notifyメソッドは、スケジューラ ウィジェットの変更イベントがトリガーされるたびに作成するのではなく、1 回だけ作成する必要があります。接続を開始する場合も同様です。

したがって、おそらく次のようになります。

// set up hub methods and start connection ..
var notificationHub = $.connection.MyBookingHub;
notificationHub.client.Notify = function (MyStart, MyEnd, MyMessage) {
    var scheduler = $("#scheduler").data("kendoScheduler");
    scheduler.dataSource.add({
        start: new Date(MyStart),
        end: new Date(MyEnd),
        title: "Costas Interview"
    });
};

window.hubConnection = $.connection.hub.start();

// create scheduler change handler
function scheduler_change(e) {
    var start = e.start; //selection start date
    var end = e.end; //selection end date
    var slots = e.slots; //list of selected slots
    var events = e.events; //list of selected Scheduler events

    window.hubConnection.done(function () {
        notificationHub.server.sendNotification(start, end, "Booking Title");
    });
}
于 2014-02-04T03:03:45.597 に答える