【发布时间】:2011-09-17 09:30:50
【问题描述】:
我有一个包含转发器的用户控件,它的数据源是使用 IEnumerable 对象设置的,该对象包含从代码中的查询返回的数据。转发器具有分页功能,并为每页显示自定义数量的记录。
我不想在每次用户单击下一步按钮以查看转发器中的下一页记录时加载所有数据。如何使它成为 IQueryable 并使用 Skip() 和 Take() 仅显示该页面所需的记录?
我有以下代码:
//Code that assigns query to repeater data source
DataSet = QueryGoesHere.ToArray(); // returns IEnumerable
repeater.DataSource = DataSet;
repeater.DataBind();
//Code that creates PagedDataSource - how can I update this to make it display only the records that are needed for the currently displayed page?
objPds = new PagedDataSource();
objPds.DataSource = DataSource
objPds.AllowPaging = true;
objPds.PageSize = 5;
objPds.CurrentPageIndex = CurrentPage;
lblCurrentPage.Text = "Page: " + (CurrentPage + 1).ToString() + " of " + objPds.PageCount.ToString();
【问题讨论】:
标签: c# asp.net user-controls