gpt4 book ai didi

telerik - Kendo Ui Grid - 仅获取初始请求的页码行数

转载 作者:行者123 更新时间:2023-12-02 15:22:42 25 4
gpt4 key购买 nike

我已经阅读了这里的几篇文章以及 Telerik 网站上的教程,但它们缺乏 - 并且文档已关闭。希望在阅读数小时后能快速解决。

我正在尝试使用具有大量行(1M)的 Kendo 网格。在网站上的示例中,我看到 View Controller 操作正在返回整个数据集。获取所有行是非常昂贵的过程,并且数据集很大。

我的问题是如何配置网格,使每个后续回调都将返回下一页并且初始调用不会立即获取所有行?

我的代码类似于:

//Main controller action
public ActionResult Index()
{
List<items> listItems = GetAllItems(); // very expensive call!

return View(listItems);
}

// my view for that action
@(Html.Kendo().Grid(Model)
.Name("grid")
.Columns(columns =>
{
//some columns...
})

.Pageable(page=>page.PageSizes(true)) //Enable paging - I suspect here I can fix
.DataSource(datasource =>datasource.Ajax().PageSize(20).Read(read => read.Action("MoreItems", "Index")).ServerOperation(true)) // tried all sorts of things here
.Sortable()
.Filterable()
)


// the callbacks for the ajax
public ActionResult MoreItems([DataSourceRequest] DataSourceRequest request)
{
return Json(GetAllItems().ToDataSourceResult(request));
}
//add some cache just to see what was holding the thing up
[OutputCache(Duration = 3600, VaryByParam = "none")]
private static List<items> GetAllItems()
{
//some code to retrieve items
}

(从示例来看,初始调用似乎返回完整的模型 - 并且对 Products_Read 的后续调用是在过滤器对象上。如何过滤初始调用但允许将来分页 - 在我的例子中我有 100k+ 行,不可能执行“return View(model”) )谢谢!

最佳答案

似乎对 Kendo 信息不太幸运...您正在寻找的称为 serverPaging (框架 DataSource 下的文档 here )。

对于您的服务器将收到的每个请求:

  • take 包含要检索的记录数
  • 跳过从数据集前面开始读取多少条记录
  • page当前页数据的索引
  • pageSize 每页的记录数

您还可以考虑使用 scrollable.virtual(here 中的文档,其中当您在网格中向下滚动时会加载以下页面。

此示例 ( http://demos.kendoui.com/web/grid/remote-data.html ) 使用 serverPaging

关于telerik - Kendo Ui Grid - 仅获取初始请求的页码行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14925122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com