-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcode for pagination(updated).txt
159 lines (109 loc) · 5.55 KB
/
code for pagination(updated).txt
1
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
Imports System.Data.SqlClient
Imports System.Data
Partial Class _Default
Inherits System.Web.UI.Page
Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("testConnectionString").ConnectionString)
Dim cmd As SqlCommand
Dim ds As New DataSet
Dim ad As SqlDataAdapter
'DECLARE GLOBLE VARIABLE WHICH HOLDS CURRENT PAGE INDEX.
Dim currentIndex As Integer = 0
Dim pages As New PagedDataSource 'INITIALIZE THE PAGE VARIABLE.
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
'DISPLAY ONLY 5 RECORD AT PAGE LOAD.
bind()
End If
End Sub
Protected Sub bind()
'FETCH DATA FROM SQL DATABASE.
cmd = New SqlCommand("select * from tb", con)
ad = New SqlDataAdapter(cmd)
ad.Fill(ds)
'ALLOW PAGING
pages.AllowPaging = True
'DISPLAY NUMBER OF DATA PER PAGE
pages.PageSize = 5
'CONFIGURE DATA SOURCE TO PAGEDATASOURCE.
pages.DataSource = ds.Tables(0).DefaultView
'SET CURRENT PAGE INDEX RETRIEVED BY VIEWSTATE.
pages.CurrentPageIndex = ViewState("currentval")
'NOW SIMPLY PASS ALL PAGED VARIABLE VALUE TO DATALIST CONTROL.
DataList1.DataSource = pages 'TYPE YOUR DATA CONTROL NAME LIKE LISTVIEW,REPEATER ETC.
DataList1.DataSourceID = ""
'IT IS NECESSARY TO CLEAR DATASOURCE ID ,IF YOU CONFIGURE DATALIST AT DESIGN TIME.
DataList1.DataBind()
DataList1.DataKeyField = "num" 'ALL OPERATION PERFORMED BY PRIMARY KEY COLUMN THAT IS "num".
'RETAINED THE ABOVE CURRENTINDEX VALUES WHICH I STORE IN VIEWSTATE. YOU CAN STORE IN SESSION.
ViewState("currentval") = currentIndex
End Sub
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'--------------CODE FOR NAVIAGATING TO FIRST PAGE-------------------
'SET THE INDEX OF DATALIST TO 0 .MEANS FIRST PAGE OF PAGEDDATASOURCE.
currentIndex = 0
'store CURRENTVAL VARIABLE TO VIEWSTATE FOR RETAINING VALUE.
ViewState("currentval") = currentIndex
'CALL BIND METHOD FOR BINDING DATALIST CONTROL.
bind()
'--------------END OF CODING FOR NAVIAGATING TO FIRST PAGE-------------------
End Sub
Protected Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
'--------------CODING FOR NAVIAGATING TO NEXT PAGE'S-------------------
'FIRST WE FETCH ALL RECORDS FROM DATABASE.
cmd = New SqlCommand("select count(*) from tb", con)
con.Open()
'HERE WE CALL EXECUTESCALER .BECAUSE WE WANT TOTAL AVAILABLE RECORD NUMBER FROM DATABASE.
Dim getvalue As Integer = cmd.ExecuteScalar()
con.Close()
'NOW DIVIDE THIS NUMBER BY PAGESIZE NUMBER .FOR EX IN OUR EXAMPLE PAGE SIZE IS 5.
getvalue = getvalue / 5
'HERE getvalue VARIABLE CONTAINS 5 RECORD AT A TIME.
If ViewState("currentval") < getvalue - 1 Then
'INCRESE VALUE OF GLOBLE VARIABL TO SEE NEXT PAGE DATA.
currentIndex = ViewState("currentval") + 1
'STORE THE CURRENTVAL VALUE TO VIEWSTATE.
ViewState("currentval") = currentIndex
'CALL BIND METHOD TO BIND CONTROL DATA.
bind()
Else
'MEANS YOU ARE IN LAST PAGE.
Response.Write("YOU ARE ALREADY IN LAST PAGE...")
End If
'--------------END OF CODING FOR NAVIAGATING TO NEXT PAGE'S-------------------
End Sub
Protected Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
'--------------CODING FOR NAVIAGATING TO PREVIOUS PAGE'S-------------------
'WE CHECK WETHER VIEWSTATE VALUE IS GREATER THAN 0 OR NOT.
'IF GREATER THAN 0 THEN WE DECREASE THE VIEWSTATE VALUE AND BIND THE DATALIST CONTROL.
If ViewState("currentval") > 0 Then
'DECREMENT THE GLOBLE VARIABLE (currentIndex) TO 1 .FOR VIEWING PREVIOUS RECORD.
currentIndex = ViewState("currentval") - 1
'STORE THE NEW VALUE TO VIEWSTATE .
ViewState("currentval") = currentIndex
'CALL CUSTOM BIND METHOD. .
bind()
Else
'MEANS YOU ARE IN FIRST PAGE.
Response.Write("YOU ARE ALREADY IN FIRST PAGE...")
End If
'--------------END OF CODING FOR NAVIAGATING TO PREVIOUS PAGE'S-------------------
End Sub
Protected Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
'--------------CODING FOR NAVIAGATING TO LAST PAGE-------------------
cmd = New SqlCommand("select count(*) from tb", con)
con.Open()
'HERE WE CALL EXECUTESCALER .BECAUSE WE WANT TOTAL AVAILABLE RECORD NUMBER FROM DATABASE.
Dim getvalue As Integer = cmd.ExecuteScalar()
con.Close()
'NOW DIVIDE THIS NUMBER BY PAGESIZE NUMBER .FOR EX IN OUR EXAMPLE PAGE SIZE IS 5.
getvalue = getvalue / 5
'HERE getvalue VARIABLE CONTAINS 5 RECORD AT A TIME.
currentIndex = getvalue - 1 'OUR GLOABLE VAIRABLE INITIAL VALUE IS 0.
'SO WE NEED TO DECREMENT VALUE BY 1.
'STORE THE CURRENTINDEX VALUE TO VIEWSTATE.
ViewState("currentval") = currentIndex
'CALL CUSTOM BIND METHOD.
bind()
'--------------END OF CODING FOR NAVIAGATING TO PREVIOUS PAGE'S-------------------
End Sub
End Class