我有这个函数返回一个DataTable:
Public Shared Function GetDataTable(ByVal PageSize As Integer, ByVal CurrentPagea As Integer) As DataTable
Dim dtData As New DataTable
dtData = da_Book_Content.GetDataContent()
'TODO : how to do data paging for dtData with Linq
Return dtData
End Function
在页面上,我有DataList来显示数据。它工作,但我想实现分页功能。我该怎么做才能使用Linq延迟加载功能?
感谢。
答案 0 :(得分:10)
如果DataTable已经来自其他地方而不是LINQ2SQL,则Lazy Loading不会发挥作用。
但是,您可以使用LINQ2DataSets来利用Skip()和Take()扩展方法。
您需要添加对程序集的引用:System.Data.DataSetExtensions.dll
然后您可以像这样编写函数:
Public Shared Function GetDataTable(ByVal PageSize As Integer, ByVal CurrentPagea As Integer) As DataTable
Dim dtData As New DataTable = da_Book_Content.GetDataContent()
Dim query = dtData.AsEnumerable().Skip(CurrentPage).Take(PageSize)
Return query.CopyToDataTable()
End Function