Nis
6Bu yazımızda web sayfalarında sıklıkla gördüğümüz sayfalama yönteminden bahsedeceğiz.
Zaman zaman tasarımımız gerekiği içeriğimiz belirlediğimiz sayfa ya da bölüme sığmayabilir. Bu tür durumlar için genellikle sayfalama yöntemi kullanılır. ASP ile sayfalama yapmanın en kolay yöntemi veritabanındaki verileri kayıt setine kaydedip pagecount ve pagesize yöntemini kullanmaktır.
Sayfalama yapmanın farklı yöntemleri de bulunmaktadır, ilerleyen yazılarımızda bunlardan da bahsedeceğiz.
Aşağıdaki kodların inceleyerek aklınıza takılan soruları sorabilirsiniz.
Görüldüğü gibi basit bir şekilde ASP'de sayfalama pagecount ve pagesize yöntemi ile bu şekilde yapılabilir. Ancak veritabanınıza Execute yöntemi ile bağlandıysanız kayıt setindeki veri sayısını saydırmak için pagecount özelliğini kullanamazsınız. Bu konuya ilerleyen yazılarımızda bahsedeceğiz.
Sayfalama yapmanın farklı yöntemleri de bulunmaktadır, ilerleyen yazılarımızda bunlardan da bahsedeceğiz.
Aşağıdaki kodların inceleyerek aklınıza takılan soruları sorabilirsiniz.
<%
Set objRS = SizinRecordsetiniz 'buraya sizin kayıtsetinizi (Recordset) yazınız.
s = CInt(Request.QueryString("s" )) ' sayfa numarası burada alınıyor.
ss = CInt(Request.QueryString("ss" )) ' bir sayfada kaç kayı gözükeceği burada alınıyor.
If ss < 1 Then ss = 20 ' varsayılan olarak bir sayfada kaç kayıt gösterileceği burada atanıyor.
objRS.CacheSize = ss
objRS.PageSize = ss
p = s
If p < 1 Then
Gosterilen = 1
Else
Gosterilen = Int(p)
End If
TKayit = objRS.PageCount
If Gosterilen > TKayit Then Gosterilen = TKayit
If Gosterilen < 1 then Gosterilen = 0
If Gosterilen = 0 then
Response.Write ""
Else
objRS.AbsolutePage = Gosterilen
End If
sayfalar = objRS.PageCount
objRS.absolutepage = Gosterilen
For konu=1 To objRS.PageSize
If objRS.Eof Then Exit For
%>
listelenecek veriler ' buraya for döngüsü arasında listelenecek verileri yazınız.
<%
objRS.Movenext
Next
%>
<% '######### SAYFA NUMARALARI ############ %>
<table class="yazi_normal" cellspacing="0" cellpadding="5" width="100%" border="0">
<tr>
<td width="50%"> Sayfa(lar) :
<%
limit = 5
If Gosterilen <> 1 Then
Response.Write "<a href=?s=1 title='İlk sayfaya git' style='text-decoration: none'><font size=2 face=webdings>7</font></a></a> "
End If
If Gosterilen > 2 Then
Response.Write "<a href='?s=" & Gosterilen - 1 & "&ss=" & ss & "' title='Bir önceki sayfaya git' style='text-decoration: none'><font size=2 face=webdings>3</font></a> "
End If
For y=1 To objRS.PageCount
If Gosterilen=y Then
Response.Write "<font size=1><b>[" & y & "></b></font>" & " "
Else
If Gosterilen-limit < y and y < Gosterilen+limit Then
Response.Write "<font size=1><a href=?s=" & y & "&ss=" & ss & " style='text-decoration: none'>[" & y & "></a></font> "
End If
End If
Next
If Gosterilen < objRS.PageCount-1 Then
Response.Write "<a href='?s=" & Gosterilen + 1 & "&ss=" & ss & "' title='Bir sonraki sayfaya git' style='text-decoration: none'><font size=2 face=webdings>4</font></a> "
End If
If Gosterilen <> objRS.PageCount Then
Response.Write "<a href='?s=" & objRS.PageCount & "&ss=" & ss & "' title='Son sayfaya git' style='text-decoration: none'><font size=2 face=webdings>8</font></a> "
End If
%>
</td>
<td align="center"> <a href="#">Yukarı</a></td>
<td width="50%">
<P align="right">
<%
For sayfasayisi=10 To 30 Step 10
If sayfasayisi=ss Then sayfasayisi=sayfasayisi+10
%>
<a href="?s=<%=s %>&ss=<%=SayfaSayisi %>" alt="Bu sayfada <%=SayfaSayisi %> tane soru göster"><%=SayfaSayisi %></a>
<% Next %>
[ <%=Gosterilen %> / <%=objRS.Pagecount %> >
</P>
</td>
</tr>
</table>
Set objRS = SizinRecordsetiniz 'buraya sizin kayıtsetinizi (Recordset) yazınız.
s = CInt(Request.QueryString("s" )) ' sayfa numarası burada alınıyor.
ss = CInt(Request.QueryString("ss" )) ' bir sayfada kaç kayı gözükeceği burada alınıyor.
If ss < 1 Then ss = 20 ' varsayılan olarak bir sayfada kaç kayıt gösterileceği burada atanıyor.
objRS.CacheSize = ss
objRS.PageSize = ss
p = s
If p < 1 Then
Gosterilen = 1
Else
Gosterilen = Int(p)
End If
TKayit = objRS.PageCount
If Gosterilen > TKayit Then Gosterilen = TKayit
If Gosterilen < 1 then Gosterilen = 0
If Gosterilen = 0 then
Response.Write ""
Else
objRS.AbsolutePage = Gosterilen
End If
sayfalar = objRS.PageCount
objRS.absolutepage = Gosterilen
For konu=1 To objRS.PageSize
If objRS.Eof Then Exit For
%>
listelenecek veriler ' buraya for döngüsü arasında listelenecek verileri yazınız.
<%
objRS.Movenext
Next
%>
<% '######### SAYFA NUMARALARI ############ %>
<table class="yazi_normal" cellspacing="0" cellpadding="5" width="100%" border="0">
<tr>
<td width="50%"> Sayfa(lar) :
<%
limit = 5
If Gosterilen <> 1 Then
Response.Write "<a href=?s=1 title='İlk sayfaya git' style='text-decoration: none'><font size=2 face=webdings>7</font></a></a> "
End If
If Gosterilen > 2 Then
Response.Write "<a href='?s=" & Gosterilen - 1 & "&ss=" & ss & "' title='Bir önceki sayfaya git' style='text-decoration: none'><font size=2 face=webdings>3</font></a> "
End If
For y=1 To objRS.PageCount
If Gosterilen=y Then
Response.Write "<font size=1><b>[" & y & "></b></font>" & " "
Else
If Gosterilen-limit < y and y < Gosterilen+limit Then
Response.Write "<font size=1><a href=?s=" & y & "&ss=" & ss & " style='text-decoration: none'>[" & y & "></a></font> "
End If
End If
Next
If Gosterilen < objRS.PageCount-1 Then
Response.Write "<a href='?s=" & Gosterilen + 1 & "&ss=" & ss & "' title='Bir sonraki sayfaya git' style='text-decoration: none'><font size=2 face=webdings>4</font></a> "
End If
If Gosterilen <> objRS.PageCount Then
Response.Write "<a href='?s=" & objRS.PageCount & "&ss=" & ss & "' title='Son sayfaya git' style='text-decoration: none'><font size=2 face=webdings>8</font></a> "
End If
%>
</td>
<td align="center"> <a href="#">Yukarı</a></td>
<td width="50%">
<P align="right">
<%
For sayfasayisi=10 To 30 Step 10
If sayfasayisi=ss Then sayfasayisi=sayfasayisi+10
%>
<a href="?s=<%=s %>&ss=<%=SayfaSayisi %>" alt="Bu sayfada <%=SayfaSayisi %> tane soru göster"><%=SayfaSayisi %></a>
<% Next %>
[ <%=Gosterilen %> / <%=objRS.Pagecount %> >
</P>
</td>
</tr>
</table>
Görüldüğü gibi basit bir şekilde ASP'de sayfalama pagecount ve pagesize yöntemi ile bu şekilde yapılabilir. Ancak veritabanınıza Execute yöntemi ile bağlandıysanız kayıt setindeki veri sayısını saydırmak için pagecount özelliğini kullanamazsınız. Bu konuya ilerleyen yazılarımızda bahsedeceğiz.
Etiketler : pagecount asp sayfalama pagging execute pagesize
İçeriği takip etSayfayı YazdırPermalink1 yorum var
#818.-canci-06 Mayıs 2010 Perşembe
Sayfa listeleme değilmi bir dizindeki sayfaları listeliyor dimi. yanlış mı anladım?
Sanırım dizin bu satırda belirtiliyor tam olarak nasıl ?
Set objRS = SizinRecordsetiniz
