【发布时间】:2012-01-25 16:55:42
【问题描述】:
我们在专门设计的视图中呈现了一个 DX 网格视图。我们传递一个预定义的 ViewModel 对象,其值是从 Linq-2-Entities 查询中填充的。问题在于,在我们的回调函数中,L2E 查询实际上是在 DevExpress 网格执行任何过滤、排序和分页之前在 DB 上执行的。 IE.:(简化示例,实际情况我们从多个表中选择数据但仍然在单个linq查询中)
public ActionResult GridViewPartial(string myParameters)
{
var modelData = from s in db.myTable
select new { modelName = s.Name };
return PartialView("GridViewPartial", modelData);
}
在这种情况下,查询实际上是在数据传递到视图之前执行的。因此,它实际上从数据库中选择了太多的数据,而 gridview 只显示选定的页面。
我们如何修改查询使其只选择用户选择的页面的数据? IE。当用户选择第 2 页时,跳过 10 行并在 L2E 查询中取 10 行,而不是选择 100000 行(如果表中有那么多行)然后应用过滤/排序/分页,就像描述的情况一样?
【问题讨论】:
标签: c# linq asp.net-mvc-3 devexpress aspxgridview