【问题标题】:How do I update a Kendo scheduler from a SignalR hub method?如何从 SignalR 集线器方法更新 Kendo 调度程序?
【发布时间】:2014-02-04 02:46:44
【问题描述】:

这是使用信号器的代码,它成功地将信息发送到集线器,而集线器只是在执行 clients.all.Notifiy 等......我刚刚添加了您推荐的代码示例,我从 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");

        });
    }

【问题讨论】:

    标签: javascript kendo-ui signalr kendo-scheduler


    【解决方案1】:

    您应该只创建一次client.notify 方法,而不是每次触发调度程序小部件上的更改事件。启动连接也是如此。

    所以应该是这样的:

    // 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");
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-28
      • 2023-03-05
      • 2021-09-06
      • 2018-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多