gridview 翻页后保持排序

本文介绍了一个ASP.NET中GridView控件的排序实现方法。通过自定义的排序函数SortDataTable来对数据表进行升序或降序排列,并利用ViewState保存排序方向等状态,确保翻页时保持正确的排序方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 Protected Sub gvdatalist_Sorting()Sub gvdatalist_Sorting(ByVal sender As ObjectByVal e As System.Web.UI.WebControls.GridViewSortEventArgs) Handles gvdatalist.Sorting
 2
 3        GridViewSortExpression = e.SortExpression
 4
 5        Dim pageIndex As Integer = gvdatalist.PageIndex
 6        gvdatalist.DataSource = SortDataTable(dt, False)
 7        gvdatalist.DataBind()
 8        gvdatalist.PageIndex = pageIndex
 9
10    End Sub

11
12    Private Property GridViewSortDirection()Property GridViewSortDirection() As String
13        Get
14            Return ViewState("SortDirection")
15        End Get
16        Set(ByVal Value As String)
17            ViewState("SortDirection"= value
18        End Set
19    End Property

20
21
22
23    Private Property GridViewSortExpression()Property GridViewSortExpression() As String
24        Get
25            Return ViewState("SortExpression")
26        End Get
27        Set(ByVal Value As String)
28            ViewState("SortExpression"= value
29        End Set
30    End Property

31
32
33
34    Private Function GetSortDirection()Function GetSortDirection() As String
35
36        Select Case GridViewSortDirection
37
38            Case "ASC"
39                GridViewSortDirection = "DESC"
40
41                'Exit Function
42
43            Case "DESC"
44
45                GridViewSortDirection = "ASC"
46
47                ' Exit Function
48            Case Else
49                GridViewSortDirection = "ASC"
50
51        End Select
52        Return GridViewSortDirection
53
54    End Function

55
56
57
58
59    Protected Function SortDataTable()Function SortDataTable(ByVal dataTable As DataTable, ByVal isPageIndexChanging As BooleanAs DataView
60
61        If Not dataTable Is Nothing Then
62
63            Dim dataView As DataView = New DataView(dataTable)
64
65            If GridViewSortExpression <> String.Empty Then
66
67                If isPageIndexChanging Then
68
69                    dataView.Sort = String.Format("{0} {1}", GridViewSortExpression, GridViewSortDirection)
70
71                Else
72
73                    dataView.Sort = String.Format("{0} {1}", GridViewSortExpression, GetSortDirection())
74
75                End If
76
77            End If
78
79            Return dataView
80
81        Else
82
83            Return New DataView()
84
85        End If
86
87    End Function

88
89    Protected Sub gvdatalist_PageIndexChanging()Sub gvdatalist_PageIndexChanging(ByVal sender As ObjectByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles gvdatalist.PageIndexChanging
90        Me.gvdatalist.PageIndex = e.NewPageIndex
91        Me.gvdatalist.DataSource = SortDataTable(dt, True)
92        Me.gvdatalist.DataBind()
93        Me.drto.SelectedValue = e.NewPageIndex + 1
94    End Sub

转载于:https://www.cnblogs.com/hambywu/archive/2008/05/28/1209384.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值