Может ли JQGrid работать с SignalR?

Ребята подскажите пожалуйста, что я делаю не так и будет ли вообще так работать? Есть проект ASP.Net MVC, на данный момент реализовано следующее:

HomeController

public JsonResult Get()
    {
        using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["SignalR"].ConnectionString))
        {
            connection.Open();
            using (SqlCommand command = new SqlCommand(@"SELECT [DisplayName],[EmailAddress],[Title],[Department], [OfficePhone], [MobilePhone] FROM [dbo].[ADusers] WHERE [Enabled]>0 and [Company] = 'Рога и копыта'", connection))
            {
                command.Notification = null;

                SqlDependency dependency = new SqlDependency(command);
                dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);

                if (connection.State == ConnectionState.Closed)
                    connection.Open();

                SqlDataReader reader = command.ExecuteReader();

                var listCus = reader.Cast<IDataRecord>()
                        .Select(x => new
                        {
                            DisplayName = x["DisplayName"],
                            EmailAddress = x["EmailAddress"],
                            Title = x["Title"],
                            //Department = x["Department"],
                            OfficePhone = x["OfficePhone"],
                            MobilePhone = x["MobilePhone"]
                        }).ToList();

                return Json(new { listCus = listCus }, JsonRequestBehavior.AllowGet);
            }
        }
    }

Hub

public class ADHub : Hub
{
    public static void Show()
    {
        IHubContext context = GlobalHost.ConnectionManager.GetHubContext<ADHub>();
        context.Clients.All.displayAD();
    }
}

Index.chhtml

@Html.Hidden("Get", Url.Action("Get", "Home"))
<div id="pager">
    <table id="example1" class="table table-bordered table-hover">
    </table>
</div>

Подключение HUB

  $(function () {
    var cus = $.connection.aDHub;
    cus.client.displayAD = function () {
        getData();
    };
    $.connection.hub.start();
    getData();
});

И заполнение JqGrid

function getData() {
    $.ajax({
        url: $("#Get").val(),
        type: 'GET',
        datatype: 'json',
        success: function (data) {
            jQuery("#example1").jqGrid({
                data: data.listCus,
                loadonce: true,
                datatype: "local",
                colNames: ['DisplayName', 'EmailAddress', 'Title', 'OfficePhone', 'MobilePhone'],
                colModel: [
                    { name: 'DisplayName', index: 'DisplayName', width: 55 },
                    { name: 'EmailAddress', index: 'EmailAddress', width: 90 },
                    { name: 'Title', index: 'Title', width: 100 },
                    { name: 'OfficePhone', index: 'OfficePhone', width: 80, align: "right" },
                    { name: 'MobilePhone', index: 'MobilePhone', width: 80, align: "right" }
                ],
                rowNum: 1000,
                scroll: true,
                viewrecords: true,
                width: window.innerWidth - 30,
                height: window.innerHeight - 190,
                altRows: true,
            }).jqGrid("navGrid", "#pager", {
                edit: false,
                add: false,
                del: false,
                search: true,
                refresh: false
            }).jqGrid("gridResize");
        }
    });
}

Данные в грид грузятся, но при изменении в бд не обновляются. Но если делаю так:

function getData() {
    var $tbl = $('#tblInfo');
    $.ajax({
        url: $("#Get").val(),
        type: 'GET',
        datatype: 'json',
        success: function (data) {
            $tbl.empty();

            $.each(data.listCus, function (i, model) {
                
                model.forEach(m => {
                    if (dept !== m.Department) {
                        dept = m.Department;
                        $tbl.append("<tr><th colspan='3'>" + dept + "</th></tr>");
                    }
                    $tbl.append('<tr><td>' + m.DisplayName + '</td>' +
                        '<td>' + m.EmailAddress + '</td>' +
                        '<td>' + m.Title + '</td></tr>'
                    );
                });
            });
         }
    });
}

ТО обновления отслеживаются. Не судите строго за нечитабельный код, я чайник


Ответы (0 шт):