PDA

View Full Version : بهترین روش pagging در استفاده از repeater



hamed_bostan
شنبه 29 اردیبهشت 1386, 00:40 صبح
با سلام خدمت دوستان و اساتید.
من یه Table دارم که حدود 2000 رکورد داره و این رکورد ها بینشون رکورد حذف شده هم دارن یعنی شماره رکورد ها به ترتیب نیستند مصلا: 1-2-3-4-7-9-10-11-12-17-100

من اطلاعات این رکورد ها رو با استفاده از repeater نشون می دم اما خوب خیلی لیستم بلند بالا میشه . می خوام از pagging استفاده کنم و 20 تا 20 تا اطلاعات رو نشون بدم . بهترین روش برای این کار چی هست؟ ممنون می شم راهنمایی کنین.

ealireza
شنبه 29 اردیبهشت 1386, 09:56 صبح
با سلام خدمت دوستان و اساتید.
من یه Table دارم که حدود 2000 رکورد داره و این رکورد ها بینشون رکورد حذف شده هم دارن یعنی شماره رکورد ها به ترتیب نیستند مصلا: 1-2-3-4-7-9-10-11-12-17-100

من اطلاعات این رکورد ها رو با استفاده از repeater نشون می دم اما خوب خیلی لیستم بلند بالا میشه . می خوام از pagging استفاده کنم و 20 تا 20 تا اطلاعات رو نشون بدم . بهترین روش برای این کار چی هست؟ ممنون می شم راهنمایی کنین.
بهترین روش استفاده از یک کوئری SQL جهت صفحه بندی هست
یعنی عملیات Paging در SQL انجام شه

موفق باشید

MehranZand
شنبه 29 اردیبهشت 1386, 13:06 عصر
حامد جان شما چرا جستجو نمیکنی :متفکر:
http://barnamenevis.org/forum/showthread.php?t=64319&highlight=Paging

eshaghi
دوشنبه 31 اردیبهشت 1386, 14:38 عصر
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim ItemNumberList = New ArrayList
Dim PageSize As Integer = 2
str = "SELECT jid FROM ajnas ORDER BY jid "

con = New OleDbConnection("provider=microsoft.jet.oledb.4.0;" & "data source=e:\test.mdb")
con.Open()
com = New OleDbCommand(str, con)
DBReader = com.ExecuteReader()

While DBReader.Read()
ItemNumberList.Add(DBReader("jid"))
End While
DBReader.Close()
con.Close()
ItemNumberList.TrimToSize()

'-- Create Paging Buttons
Dim StartIndex = 0
Dim EndIndex As Integer
Dim StartKey As String
Dim EndKey As String
Dim i As Integer
Dim pagebuttons As New Button
pagebuttons.Controls.Clear()
For i = 1 To Math.Ceiling(ItemNumberList.Count / PageSize)

EndIndex = StartIndex + PageSize - 1
If EndIndex > ItemNumberList.Count - 1 Then
EndIndex = ItemNumberList.Count - 1
End If

StartKey = ItemNumberList(StartIndex)
EndKey = ItemNumberList(EndIndex)

Dim PageButton As Button
PageButton = New Button
PageButton.Text = i
PageButton.ID = "P" & i
PageButton.CommandName = StartKey & "|" & EndKey
PageButton.Style("width") = "20px"
PageButton.Style("background-color") = "#F0F0F0"
AddHandler PageButton.Command, AddressOf GetPage
placeholder1.Controls.Add(PageButton)

StartIndex += PageSize

Next



If Not Page.IsPostBack Or ViewState("Updated") = True Then

'== BIND INITIAL REPEATER ==
str = "SELECT TOP " & PageSize & " * FROM ajnas ORDER BY jid"
con = New OleDbConnection("provider=microsoft.jet.oledb.4.0;" & "data source=e:\test.mdb")
con.Open()
com = New OleDbCommand(str, con)
DBReader = com.ExecuteReader()

rep.DataSource = DBReader
rep.DataBind()
DBReader.Close()
con.Close()

Dim FirstButton As Button
FirstButton = CType(placeholder1.FindControl("P1"), Button)
FirstButton.Style("background-color") = "#009999"
FirstButton.Style("color") = "#FFFFFF"

ViewState("Updated") = False

End If


'Put user code to initialize the page here
End Sub

Sub GetPage(ByVal Src As Object, ByVal Args As CommandEventArgs)
Dim Keys() As String
Keys = Split(Args.CommandName, "|")





str = "SELECT * FROM ajnas WHERE jid >= '" & Keys(0) & "' AND " & _
"jid <= '" & Keys(1) & "' " & _
"ORDER BY jid"

con = New OleDbConnection("provider=microsoft.jet.oledb.4.0;" & "data source=e:\test.mdb")
con.Open()
com = New OleDbCommand(str, con)

DBReader = com.ExecuteReader()
rep.DataSource = DBReader
rep.DataBind()
DBReader.Close()
con.Close()
'-- Highlight clicked button
Dim Item As Button
Dim ThisButton As Button
For Each Item In placeholder1.Controls
ThisButton = CType(Item, Button)
ThisButton.Style("background-color") = "#F0F0F0"
ThisButton.Style("color") = "#000000"
Next
ThisButton = CType(placeholder1.FindControl(Src.id), Button)
ThisButton.Style("background-color") = "#009999"
ThisButton.Style("color") = "#FFFFFF"
End Sub

باید یک placeholder با مشخصه p1 در فرم بسازی که کلید های صفحه در آن قرار می گیرد