KendoUI 添加的扩展方法(ToDataSourceResult)似乎在 Pages > Page #1 上失败。第一次加载页面时它工作正常,但是当我尝试将它与虚拟滚动一起使用以异步获取页面 2,3,4 ... N 时,该方法会忽略我正在尝试的 IEnumerable 对象中的所有数据进行改造。
我的代码如下:
我有一个 MVC 控制器,它可以像这样获取数据:
Database database = Database.GenerateDatabase();
ResultSet queryResults = database.GetEvents(
FilterHelper.GenerateQueryCriteria((List<IFilterDescriptor>) request.Filters, request.Page, request.PageSize)
);
Database.GetEvents 返回一个对象,如下所示:
public class ResultSet {
public List<ResultSetRow> Set;
public int PageRowCount;
public int TotalRecordCount;
}
每个 ResultSetRow 是一个类的实例,该类具有 1 个字符串和 2 个整数作为属性。
此时,我设置了一个断点并检查 ResultSet.Set 的内容。数据库正在正确地使用我使用 request.PageSize 指定的记录填充列表。我已确认将返回任何和所有页码的结果。
下一阶段,一切都很糟糕:
DataSourceResult result = ((IEnumerable<ResultSetRow>) queryResults.Set).ToDataSourceResult(request);
我检查了 DataSourceResult 对象的内容,它的数组属性“数据”为空。
为什么我的模型 (ResultSetRow) 无法转换为 Kendo 的 DataSourceResult 对象?
一些附加信息:
- 未使用聚合、组、排序和过滤器。
- Database.GetEvents 返回的结果数与请求的页面大小相匹配。
感谢您的帮助 SO 社区