【问题标题】:Using Kendo Web UI Schedular Using SignalR & MVC使用 SignalR 和 MVC 使用 Kendo Web UI 调度程序
【发布时间】:2015-03-16 20:00:23
【问题描述】:

您好,我们目前正在开发 kendo UI 调度程序,并希望使用 SignalR 使调度程序实时。

我们想要实现的是,如果 2 个客户同时查看调度程序并且客户 1 进行了预订,那么第二个客户将看到有人已经预订了该特定时间段,这样就不会发生重复预订。

如果客户在调度程序上进行预订,那么管理员也会实时看到预订。

目前我们将调度程序插入数据库没有问题,从那里我们希望将新创建的预订广播给当时正在查看调度程序的所有其他人。

  1. 可以这样做吗?如果有任何想法。

如果需要,我可以为我们目前所做的工作提供代码。

我的想法是在 ActionScript 方法中广播新的调度程序预订,然后从那里向客户广播新的预订。

      public ActionResult Tasks_Create([DataSourceRequest]DataSourceRequest request, TaskViewModel task)
    {

        if (ModelState.IsValid)
        {
            using (var sampleDB = new SampleEntities())
                            {
                //Create a new Task entity and set its properties from the posted TaskViewModel
                var entity = new Task
                {
                    TaskID = task.TaskID,
                    Title = task.Title,
                    Start = task.Start,
                    End = task.End,
                    Description = task.Description,
                    RecurrenceRule = task.RecurrenceRule,
                    RecurrenceException = task.RecurrenceException,
                    RecurrenceID = task.RecurrenceID,
                    IsAllDay = task.IsAllDay,
                    OwnerID = task.OwnerID
                };
                sampleDB.Tasks.Add(entity);
                sampleDB.SaveChanges();
                task.TaskID = entity.TaskID;
            }
        }


(i was thinking to broadcast the new booking here using signalr ????)

       return Json(new[] { task }.ToDataSourceResult(request, ModelState));


    }

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4 signalr kendo-scheduler


    【解决方案1】:

    是的,这是可以做到的(并且从您的控制器操作中进行广播是一种合理的方法)。您可能希望为查看相同数据的人创建一个组。 查看文档中的this section,了解如何从非集线器类调用客户端集线器方法。

    【讨论】:

    • 感谢您的意见,我是一名网络表单开发人员,现在正在深入了解 mvc、signalr 和 kendoui。我见过其他编码人员在使用信号器(ticker etcc)时尝试使用剑道列表视图和网格。而且我还注意到大多数 kendo 小部件在将 kendo ui 用于 mvc 时以相同的方式绑定到 mvc 控制器。所以这是个好消息。如果我的想法有误,请纠正我。再次感谢
    • 大部分widgets从同一个Kendo DataSource类型中获取数据,所以远程绑定是一样的;澄清一下,当您广播添加的条目时,您需要一个客户端集线器方法,该方法使用 JavaScript 手动将广播的条目添加到本地数据源(即 SignalR 通信不是 Kendo 数据源的内置传输模式)。跨度>
    • 因此该条目被插入到每个正在查看调度程序的客户端上。我以为我要向客户端广播新更新的 json。 ?
    • 您可以广播添加项目的数据并直接添加,也可以简单地通知客户端数据已更改,然后客户端可以使用 dataSource.transport 获取数据.再次读取操作
    • 您对我的思考过程提供了极大的帮助,感谢您抽出宝贵的时间。
    猜你喜欢
    • 2014-07-28
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多