如何在Kendo Grid中使用SignalR数据源

贾斯汀·范(Justin Pham)

为了制作实时.NET Web应用程序,我将SignalR用于Kendo网格,它与网格上的read,update,destroy方法一起使用。

但是,我的情况是从其他页面(Kendo Grid)创建和更新记录,而Kendo Grid仅用于读取数据。每当新记录添加到数据库中时,我都想实现SignalR来通知用户。

这是我的代码

SignalRHub class     public class SignalRHub : Hub
{
    private DbEntities db;
    public SignalRHub()
    {
        db = new DbEntities();
    }

    public IEnumerable<ViewTicketModel> Read()
    {
        return db.Post_User.AsEnumerable().Select(ticket => new ViewTicketModel
        {
            Id = ticket.Id,
            BuyerName = ticket.Name,
            DateCreated = ticket.CreatedOn.ToString("dd/MM/yyyy"),
            BuyerPhoneNumber = ticket.Mobile,
            Details = ticket.Details,
            Location = ticket.Location,
        }).OrderByDescending(x => DateTime.ParseExact(x.DateCreated, "dd/MM/yyyy", null)).ToList();
    }
}

Index.cshtml

    var connection = $.connection;
    var hub = connection.signalRHub;
    var hubStart = connection.hub.start();
    console.log("here");
    var signalRDataSource = new kendo.data.DataSource({
        type: "signalr",
        autoSync: true,
        push: function(e) {
            var notification = $("#notification").data("kendoNotification");
            notification.success(e.type);
        },
        schema: {
            model: {
                id: "Id",
                fields: {
                    "Id": { editable: false, type: "Number" },
                    "BuyerName": { type: "string" },
                    "DateCreated": { type: "string" },
                    "BuyerPhone": { type: "string" },
                    "Details": { type: "string" },
                    "Location": { type: "string" }
                }
            }
        },
        transport: {
            signalr: {
                promise: hubStart,
                hub: hub,
                server: {
                    read: "read",
                },
                client: {
                    read: "read",
                }
            }
        },
        pageSize: 10,
});

    $("#grid").kendoGrid({
        height: 700,           
        filterable: {
            extra: false,
        pageable: true,
        sortable: {
            mode: "multiple",
            allowUnsort: true
        },
        columns: [
                { field: "Id", title: "Notification Id", width: 100, hidden: true },
                {
                    field: "DateCreated",
                    title: "Date Created",
                    width: 150,
                    filterable: {
                        ui: "datetimepicker"
                    }
                },
                { field: "Location", title: "Location", width: 150 },                   
                { field: "BuyerName", title: "Buyer Name", width: 120, hidden: true },
                { field: "BuyerPhoneNumber", title: "Buyer Phone", width: 120, hidden: true },
        ],
        dataSource: signalRDataSource
    });
用户名

在其他页面上,您是指不同的应用程序吗?如果真是这样,这会使问题复杂化。

请记住,kendo网格仅带有4个默认信号操作(创建,更新,读取,销毁)。其他任何事情都必须由您实施。

这是一个示例,您可以如何使“已连接”的客户端进行刷新读取。

在您的中心:

IHubContext context = GlobalHost.ConnectionManager.GetHubContext<Dashboard>();
        context.Clients.All.reload();

在您的客户html页面中:

<script type="text/javascript">
var hub = $.connection.dashboard;
hub.client.reload = function () {
    updategrid();
};
var hubStart = $.connection.hub.start();
function updategrid()
{
    $('#GridName').data('kendoGrid').dataSource.read();
    $('#GridName').data('kendoGrid').refresh();
}</script>

这将强制您所有连接的客户端进行刷新。理想的情况是将适当的更改推送给客户端。由于您不知道用户支持哪种过滤器/排序/分组,因此此实现可能会很棘手。但是,这是可以实现的。您可以让每个连接的客户端将其过滤器/分组/排序发送回服务器,并仅提取适当的更改。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Kendo Grid中使用SignalR数据源

来自分类Dev

如何在UITableView中使用外部数据源

来自分类Dev

如何在JPA中使用动态JNDI数据源?

来自分类Dev

如何在jqwidgets数据源中使用DataTable

来自分类Dev

如何在SQL数据源的列中使用公式

来自分类Dev

在Kendo UI中使用父网格的数据源设置子网格的数据源

来自分类Dev

如何在Kendo ListView中更改数据源

来自分类Dev

从其数据源获取Kendo Grid

来自分类Dev

如何配置Kendo Grid数据源以使用parameterMap功能?

来自分类Dev

从Kendo Grid数据源导出所有数据

来自分类Dev

如何将参数传递给Kendo UI网格数据源的Signalr传输的Read方法

来自分类Dev

如何在Grails 1.3.3中使用多个数据源

来自分类Dev

如何在具有数据源的模板中使用绑定?

来自分类Dev

如何在Spring @Configuration类中使用HikariCP配置数据源?

来自分类Dev

Spring MVC应用程序中如何在Hibernate中使用Jboss数据源

来自分类Dev

如何在RxSwift中使用数据源和委托方法

来自分类Dev

XPages:如何在SSJS中使用“搜索”属性获取dominoView数据源的文档集合

来自分类Dev

如何在Java Web应用程序中使用数据源测试DAO?

来自分类Dev

如何在MS Power Bi Web数据源字符串中使用参数?

来自分类Dev

如何在Word MailMerge中使用两个访问数据源

来自分类Dev

如何在 Spring Boot 和 Spring Data 中使用两个 Cassandra 数据源?

来自分类Dev

如何在 WebAPI .NET 中使用 XML 作为数据源

来自分类Dev

如何在动态数据源 (SQL) 中使用自动完成角材料

来自分类Dev

Kendo Grid-设置新数据源

来自分类Dev

Kendo UI Grid本地数据源列默认排序

来自分类Dev

Kendo UI Grid本地数据源列默认排序

来自分类Dev

Kendo Grid MVC-数据源错误

来自分类Dev

Kendo UI Grid,对数据源组进行排序

来自分类Dev

如何在Kendo Grid mvvm中使用下拉列表

Related 相关文章

  1. 1

    如何在Kendo Grid中使用SignalR数据源

  2. 2

    如何在UITableView中使用外部数据源

  3. 3

    如何在JPA中使用动态JNDI数据源?

  4. 4

    如何在jqwidgets数据源中使用DataTable

  5. 5

    如何在SQL数据源的列中使用公式

  6. 6

    在Kendo UI中使用父网格的数据源设置子网格的数据源

  7. 7

    如何在Kendo ListView中更改数据源

  8. 8

    从其数据源获取Kendo Grid

  9. 9

    如何配置Kendo Grid数据源以使用parameterMap功能?

  10. 10

    从Kendo Grid数据源导出所有数据

  11. 11

    如何将参数传递给Kendo UI网格数据源的Signalr传输的Read方法

  12. 12

    如何在Grails 1.3.3中使用多个数据源

  13. 13

    如何在具有数据源的模板中使用绑定?

  14. 14

    如何在Spring @Configuration类中使用HikariCP配置数据源?

  15. 15

    Spring MVC应用程序中如何在Hibernate中使用Jboss数据源

  16. 16

    如何在RxSwift中使用数据源和委托方法

  17. 17

    XPages:如何在SSJS中使用“搜索”属性获取dominoView数据源的文档集合

  18. 18

    如何在Java Web应用程序中使用数据源测试DAO?

  19. 19

    如何在MS Power Bi Web数据源字符串中使用参数?

  20. 20

    如何在Word MailMerge中使用两个访问数据源

  21. 21

    如何在 Spring Boot 和 Spring Data 中使用两个 Cassandra 数据源?

  22. 22

    如何在 WebAPI .NET 中使用 XML 作为数据源

  23. 23

    如何在动态数据源 (SQL) 中使用自动完成角材料

  24. 24

    Kendo Grid-设置新数据源

  25. 25

    Kendo UI Grid本地数据源列默认排序

  26. 26

    Kendo UI Grid本地数据源列默认排序

  27. 27

    Kendo Grid MVC-数据源错误

  28. 28

    Kendo UI Grid,对数据源组进行排序

  29. 29

    如何在Kendo Grid mvvm中使用下拉列表

热门标签

归档