【发布时间】:2014-05-28 07:19:07
【问题描述】:
我想知道 Teleric gridview 是否支持通过在每次更改页面索引时从 Web 服务获取数据来进行分页。
我尝试在 gridview 中启用分页,但似乎 gridview 对已设置为数据源的数据应用分页。
有没有办法在 Teleric gridview 中实现远程分页,因为我不想一次将所有数据都放在内存中?
【问题讨论】:
标签: c# winforms gridview telerik
我想知道 Teleric gridview 是否支持通过在每次更改页面索引时从 Web 服务获取数据来进行分页。
我尝试在 gridview 中启用分页,但似乎 gridview 对已设置为数据源的数据应用分页。
有没有办法在 Teleric gridview 中实现远程分页,因为我不想一次将所有数据都放在内存中?
【问题讨论】:
标签: c# winforms gridview telerik
您无法获取等于网格页面大小的记录并应用分页,这就像 我总共有 40 条记录,我只想获取 10 条记录并使用页面大小 10 进行分页时间>。因此,您要实现的目标是相互矛盾的,并且无法通过使用 gridview 的分页来实现,因为它需要数据源并且您必须获取所有记录来绑定它,那么为什么要调用 Web 服务来仅获取该数量的当您拥有所有记录时,记录等于您的页面大小。希望你明白了。
【讨论】:
目前,RadGridView 不支持服务器端分页。但是,您可以使用虚拟模式功能并自行提取数据(根据您的请求)并填充单元格。有关此功能的更多信息,请点击此处:link
【讨论】:
使用 RadGridView for WinForms 进行分页模拟是可能的,尤其是在我们充分利用 LINQ 的情况下。 然而,这种方法很少用于 WinForms 应用程序,尽管在某些情况下也需要在 WinForms 网格中进行分页,尤其是当数据库中有数百万条记录时(字面意思)。 并且您也可以仅以编程方式访问 RadGridView.GridViewElement.PagingPanelElement 以进行更多更改。PagingPanelElement
代码的重要部分是实际加载数据的 BindGrid 方法:
private void BindGrid()
{
this.radGridView1.GridElement.BeginUpdate();
IQueryable queryable = new DataClasses1DataContext().MyTables.AsQueryable();
if (!String.IsNullOrEmpty(where))
{
queryable = queryable.Where(where);
}
if (!String.IsNullOrEmpty(orderBy))
{
queryable = queryable.OrderBy(orderBy);
}
radGridView1.DataSource = queryable.Skip(currentPageIndex * pageSize).Take(pageSize);
this.radGridView1.GridElement.EndUpdate(true);
EnableDisablePager();
}
【讨论】: