1
Protected Sub gvdatalist_Sorting(ByVal sender As Object, ByVal 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() 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() 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() 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(ByVal dataTable As DataTable, ByVal isPageIndexChanging As Boolean) As 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(ByVal sender As Object, ByVal 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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94
