加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 使用linq进行Datalist分页

发布时间:2020-12-16 03:32:07 所属栏目:asp.Net 来源:网络整理
导读:我正在创建一个使用 Linqfor数据访问的页面,我正在使用DataList来显示数据.我如何使用Linq进行数据分页?请阅读以下简单代码: 我通常使用PagedDatasource,但这似乎只适用于DataTable. 这是我的Linq返回与Datalist绑定的Datatable: 公共共享函数GetStudentL
我正在创建一个使用 Linqfor数据访问的页面,我正在使用DataList来显示数据.我如何使用Linq进行数据分页?请阅读以下简单代码:

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

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

公共共享函数GetStudentList()作为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)

然后提供CurrentPage和PageSize变量作为方法的参数. (您不希望将它们构建到数据访问中,因为它们可能因站点的不同部分而异…)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读