剑道网格每页都有相同的数据

问题描述 投票:0回答:2

在我的剑道网格中,我将其设置为使用分页,页面大小为 50。当网格发出读取请求时,我可以在过滤器中看到:第 1 页,50 行,然后下一页显示第 2 页, 50行等

但是每个返回结果都有相同的 50 行(来自第 1 页)。

kendo-ui grid kendo-grid
2个回答
0
投票

解决方案实际上是在控制器/处理程序中。在我的 GET Read 请求中,我有 [FromBody] 的注释,它实际上需要使用 [FromQuery] 。 [FromBody] 标签仅适用于 POST 请求。

因此,即使网格发送了正确的请求,处理程序也无法正确接收或将其转发给 SQL。

将标签更改为[FromQuery],如下所示解决了问题。

public async Task<IActionResult> OnGetReadDataAsync([FromQuery][DataSourceRequest] DataSourceRequest request)
        {
            return new JsonResult(await db.table.ToListAsync().ToDataSourceResultAsync(request));
        }

0
投票

我也有同样的问题。 Kendo 根据对象的第一个属性对项目进行排序。就我而言,在显示用户时,用户的第一个属性可以为空。我只是通过 UserId 更改了该属性的位置。是:

public Guid Verified { get; set; }
public bool UserId { get; set; }

我将顺序更改为:

public bool UserId { get; set; }
public Guid Verified { get; set; }

并且它被修复了。看起来很有趣,不是吗?但原因是在sql server中。检查一下:

    Select * from dbo.Users 
    ORDER BY [Verified]  
    OFFSET 10 ROWS FETCH NEXT 10 rows only

还有这个:

 Select * from dbo.Users
 ORDER BY [Verified] 
 OFFSET 20 ROWS FETCH NEXT 10 rows only

如果几乎所有用户的“已验证”为空,结果将是相同的。这就是为什么sql无法返回接下来的10个。

现在检查一下:

Select * from dbo.Users
 ORDER BY [UserId] 
 OFFSET 20 ROWS FETCH NEXT 10 rows only

您看到问题已解决。

希望这能有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.