asp.net - 使用 linq 进行数据列表分页

标签 asp.net linq datalist

我正在创建一个使用 Linq 进行数据访问的页面,并且我正在使用 DataList 来显示数据。如何使用 Linq 进行数据分页?请阅读下面的简单代码:

我通常使用 PagedDatasource 但这似乎只适用于 DataTable。

这是我的 Linq 返回与 Datalist 绑定(bind)的 Datatable :

公共(public)共享函数 GetStudentList() As DataTable

    Dim db As New DemoDataClassesDataContext()

    Dim query = From st In db.students _
                Order By st.st_studentid Ascending _
                Select st

    Dim dtStudent = New DataTable("myst")


    dtStudent.Columns.Add("st_id", GetType(Integer))
    dtStudent.Columns.Add("st_userid", GetType(Guid))
    dtStudent.Columns.Add("st_studentid", GetType(Integer))
    dtStudent.Columns.Add("st_firstname", GetType(String))
    dtStudent.Columns.Add("st_lastname", GetType(String))
    dtStudent.Columns.Add("st_gender", GetType(String))
    dtStudent.Columns.Add("st_email", GetType(String))


    For Each q In query
        dtStudent.Rows.Add(New Object() {q.st_id, q.st_userid, q.st_studentid, q.st_firstname, q.st_lastname, q.st_gender, q.st_email})
    Next

    Return dtStudent

End Function

在页面后面的代码中:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If Not Page.IsPostBack() Then
        LoadData()
    End If

End Sub

Private Sub LoadData()
    dsStduent = da_Student.GetStudentList()
    dt_Student.DataSource = dsStduent
    dt_Student.DataBind()

End Sub

最佳答案

你会发现方法.Skip() and .Take()很有用。

我注意到您提供了项目中的一些代码,因此这里更新了您应该如何实现这些方法。

在您获取数据的方法中,请执行以下操作:

Dim query = (From st In db.students _
            Order By st.st_studentid Ascending _
            Select st).Skip((CurrentPage - 1) * PageSize).Take(PageSize)

然后提供CurrentPagePageSize变量作为方法的参数。 (您不想将它们构建到数据访问中,因为它们可能会因站点的不同部分而异……)

关于asp.net - 使用 linq 进行数据列表分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/764364/

相关文章:

c# - 如何使用 C# LINQ 在分组结果中选择所需的行

c# - 数据列表问题

c# - Express PayPal 结账,无法创建 SSL/TLS 安全通道

c# - 以编程方式拍摄(远程)网页的屏幕截图

c# - LINQ where子句疑惑

c# - 图表控件内部数据列表

html - 菜单项隐藏在数据列表后面

c# - WCF 服务返回 400 错误请求

c# - 需要帮助 Sql Asp.net C#

c# - 如何逐步构建 LINQ => SQL/entities 查询(带联接)?