Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为MVC Kendo UI网格启用服务器筛选、排序、分页中断信号器客户端更新_C#_Kendo Ui_Telerik_Telerik Grid_Telerik Mvc - Fatal编程技术网

C# 为MVC Kendo UI网格启用服务器筛选、排序、分页中断信号器客户端更新

C# 为MVC Kendo UI网格启用服务器筛选、排序、分页中断信号器客户端更新,c#,kendo-ui,telerik,telerik-grid,telerik-mvc,C#,Kendo Ui,Telerik,Telerik Grid,Telerik Mvc,我使用Teleirk MVC包装器为Kendo UI网格创建了一个应用程序,其中包含一个SignalR datasouce 网格的更新被传输并反映在运行应用程序的所有客户端上(客户端过滤、排序、分页)。我使用的数据源相当大(这导致了一些过滤、排序和分页操作的性能问题)。因此,我随后重新配置了网格,使用服务器过滤、排序和分页,这确实解决了我的性能问题,并大大提高了应用程序的可用性 在我重新配置以将这些操作移动到服务器端后,我注意到我所做的更改并没有反映在所有客户端机器上。然后,我在客户端和服务器端

我使用Teleirk MVC包装器为Kendo UI网格创建了一个应用程序,其中包含一个SignalR datasouce

网格的更新被传输并反映在运行应用程序的所有客户端上(客户端过滤、排序、分页)。我使用的数据源相当大(这导致了一些过滤、排序和分页操作的性能问题)。因此,我随后重新配置了网格,使用服务器过滤、排序和分页,这确实解决了我的性能问题,并大大提高了应用程序的可用性

在我重新配置以将这些操作移动到服务器端后,我注意到我所做的更改并没有反映在所有客户端机器上。然后,我在客户端和服务器端过滤、排序和分页之间来回切换,以确认这一更改是问题的原因

有人以前有过这种经历吗?你能为我提供解决这个问题的步骤/建议吗


谢谢你

Telerik为我提供了解决方案。以下是答案的线索:

[

如果在SignalR Hub类中使用
DataSourceRequest
DataSourceResult
,则需要确保所有方法返回相同的类型:

        public DataSourceResult Read(DataSourceRequest request)
        {
            var result = _dataService.Read().AsQueryable().ToDataSourceResult(request);
            return result;
        }

        public void Update(ProductTitlePartsBySku item)
        {
            _dataService.Update(item);
            Clients.Others.update(item);
        }
在这种情况下,
Clients.Others.update
调用将返回项目-它应该是:

Clients.Others.update(new DataSourceResult
{
    Data = new[] { item }
});
您还必须确保在网格视图中设置.Data选项等:

    .Schema(schema => schema
        .Data("Data")
        .Total("Total")
        .Aggregates("Aggregates")
        .Model(model =>
        {
            model.Id(m => m.IDCOLUMN);
            model.Field(m => m.IDCOLUMN).Editable(false);
        })
    )

这确保了网格知道它必须绑定到DataSourceResult的Data属性,Telerik为我提供了解决方案。下面是答案:

[

如果在SignalR Hub类中使用
DataSourceRequest
DataSourceResult
,则需要确保所有方法返回相同的类型:

        public DataSourceResult Read(DataSourceRequest request)
        {
            var result = _dataService.Read().AsQueryable().ToDataSourceResult(request);
            return result;
        }

        public void Update(ProductTitlePartsBySku item)
        {
            _dataService.Update(item);
            Clients.Others.update(item);
        }
在这种情况下,
Clients.Others.update
调用将返回项目-它应该是:

Clients.Others.update(new DataSourceResult
{
    Data = new[] { item }
});
您还必须确保在网格视图中设置.Data选项等:

    .Schema(schema => schema
        .Data("Data")
        .Total("Total")
        .Aggregates("Aggregates")
        .Model(model =>
        {
            model.Id(m => m.IDCOLUMN);
            model.Field(m => m.IDCOLUMN).Editable(false);
        })
    )

这确保了网格知道它必须绑定到DataSourceResult的Data属性,Telerik为我提供了解决方案。下面是答案:

[

如果在SignalR Hub类中使用
DataSourceRequest
DataSourceResult
,则需要确保所有方法返回相同的类型:

        public DataSourceResult Read(DataSourceRequest request)
        {
            var result = _dataService.Read().AsQueryable().ToDataSourceResult(request);
            return result;
        }

        public void Update(ProductTitlePartsBySku item)
        {
            _dataService.Update(item);
            Clients.Others.update(item);
        }
在这种情况下,
Clients.Others.update
调用将返回项目-它应该是:

Clients.Others.update(new DataSourceResult
{
    Data = new[] { item }
});
您还必须确保在网格视图中设置.Data选项等:

    .Schema(schema => schema
        .Data("Data")
        .Total("Total")
        .Aggregates("Aggregates")
        .Model(model =>
        {
            model.Id(m => m.IDCOLUMN);
            model.Field(m => m.IDCOLUMN).Editable(false);
        })
    )

这确保了网格知道它必须绑定到DataSourceResult的Data属性,Telerik为我提供了解决方案。下面是答案:

[

如果在SignalR Hub类中使用
DataSourceRequest
DataSourceResult
,则需要确保所有方法返回相同的类型:

        public DataSourceResult Read(DataSourceRequest request)
        {
            var result = _dataService.Read().AsQueryable().ToDataSourceResult(request);
            return result;
        }

        public void Update(ProductTitlePartsBySku item)
        {
            _dataService.Update(item);
            Clients.Others.update(item);
        }
在这种情况下,
Clients.Others.update
调用将返回项目-它应该是:

Clients.Others.update(new DataSourceResult
{
    Data = new[] { item }
});
您还必须确保在网格视图中设置.Data选项等:

    .Schema(schema => schema
        .Data("Data")
        .Total("Total")
        .Aggregates("Aggregates")
        .Model(model =>
        {
            model.Id(m => m.IDCOLUMN);
            model.Field(m => m.IDCOLUMN).Editable(false);
        })
    )

这确保了网格知道它必须绑定到DataSourceResult的Data属性,但我看不到该解决方案如何尊重客户端特定的筛选、排序和分页设置。即使项目可能出现在第2页,但客户端当前在第1页,也会发送更新。知道如何解决这个问题吗t我看不出解决方案中的更新如何尊重客户端特定的筛选、排序和分页设置。即使项目可能出现在第2页上,而客户端当前在第1页上,也会发送更新。知道如何解决这个问题吗?但我看不到解决方案中的更新如何尊重客户端特定的筛选、排序和分页设置分页设置。当客户端当前在第1页时,即使项目可能出现在第2页上,也会发送更新。知道如何解决此问题吗?但我看不到解决方案如何尊重客户端特定的筛选器、排序和分页设置。即使项目可能出现在第2页上,当客户端客户目前在第1页。你知道如何解决这个问题吗?