asp.net-mvc – ToDataSourceResult扩展不填充DataSourceResult
KendoUI添加的扩展方法(ToDataSourceResult)似乎在Pages>上失败了.第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个int作为属性的类的实例. 此时,我设置了一个断点并检查ResultSet.Set的内容.数据库使用request.PageSize指定的记录正确填充List.我已确认正在为任何和所有页码返回结果. 下一阶段,一切都很糟糕: DataSourceResult result = ((IEnumerable<ResultSetRow>) queryResults.Set).ToDataSourceResult(request); 我检查DataSourceResult对象的内容,其数组属性’Data’为空. 为什么我的模型(ResultSetRow)无法转换为Kendo的DataSourceResult对象? 一些额外的信息: >未使用聚合,组,排序和过滤器. 感谢您的帮助SO社区 解决方法
使用ToDataSourceResult()的主要原因是它在数据库服务器上运行过滤/排序/分组/分页.因此,当给定尚未执行的IQueryable时,它最有效.
它在IEnumerable上工作,但是你必须将整个表加载到内存中,这是不可扩展的. 因为您只获得一页的数据,所以当调用ToDataSourceResult时,它认为这是数据库中的所有数据,因此返回第一个以外的页面的空列表. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 产品目录搜索 – NoSQL / MongoDB的良好用例
- asp.net – 可以在web.config中添加响应http头吗?
- asp.net-mvc – 确保每个控制器方法都有一个ValidateAntiFo
- 如何编写没有Try/Catch的程序
- asp.net-mvc-5 – MVC 5&ASP.NET身份 – 实现混乱
- asp.net-mvc – 通过伪造上下文测试:实体框架
- asp.net-mvc – 跟踪登录用户
- asp.net-mvc-3 – 为什么asp.net mvc模型绑定器生成system.
- asp.net – 如何自定义网站项目的构建?
- asp.net-mvc – Sitecore在我的MVC解决方案中提供了一个空白