Asp.net'te verilerimizi sayfalama için çeşitli eklentiler ve yöntemler mevcut. Projelerimde/çalışmalarımda kullandığım sayfalama örneğini veriyorum. İlerleyen zamanlarda MsSQL, MySQL ve Access'te nasıl kullanılacağını anlatacağım.
Sayfalamayı sağlayan kodlarımız
public String clsSayfalama(String parAdres_Satiri, Int32 parGecerli_Sayfa, Int32 parToplam_Icerik)
{
Int32 intSayfa_Alt_Siniri;
Int32 intSayfa_Ust_Siniri;
Int32 intSol_Grup_Sayisi;
Int32 intSag_Alt_Sinir;
Int32 parAdet = 5;
float fltSayfa_Sayisi = (float)parToplam_Icerik / parAdet;
Int32 intSayfa_Sayisi = (Int32)parToplam_Icerik / parAdet;
String strSayfa_Sayisi = fltSayfa_Sayisi.ToString();
if (strSayfa_Sayisi.IndexOf(",", 0) > -1 || strSayfa_Sayisi.IndexOf(".", 0) > -1)
{
intSayfa_Sayisi += 1;
}
String strDonen_Deger = "<div class=\"sayfalama_kapsul\">";
if (parGecerli_Sayfa <= intSayfa_Sayisi)
{
Int32 intSayfa_Araligi = 2;
intSayfa_Alt_Siniri = parGecerli_Sayfa - intSayfa_Araligi;
intSayfa_Ust_Siniri = parGecerli_Sayfa + intSayfa_Araligi;
intSol_Grup_Sayisi = 1 + intSayfa_Araligi;
intSag_Alt_Sinir = intSayfa_Sayisi - intSayfa_Araligi;
//Adım 1
if (intSayfa_Ust_Siniri > intSayfa_Sayisi)
{
intSayfa_Alt_Siniri = intSayfa_Sayisi - (2 * intSayfa_Araligi);
intSayfa_Ust_Siniri = intSayfa_Sayisi;
}
//Adım 2
if (intSayfa_Alt_Siniri <= 0)
{
intSayfa_Alt_Siniri = 1;
intSayfa_Ust_Siniri = intSayfa_Alt_Siniri + (2 * intSayfa_Araligi);
if (intSayfa_Ust_Siniri >= intSayfa_Sayisi)
{
intSayfa_Ust_Siniri = intSayfa_Sayisi;
}
}
//Adım 3
if (intSol_Grup_Sayisi >= intSayfa_Alt_Siniri)
{
intSol_Grup_Sayisi = intSayfa_Alt_Siniri - 1;
}
//Adım 4
if (intSag_Alt_Sinir <= intSayfa_Ust_Siniri)
{
intSag_Alt_Sinir = intSayfa_Ust_Siniri + 1;
}
//Adım 5
if (parGecerli_Sayfa > 1)
{
strDonen_Deger += "<a href=\"" + parAdres_Satiri + "1\" title=\"İlk Sayfa\">[«]</a>";
Int32 intOnceki_Sayfa = parGecerli_Sayfa - 1;
strDonen_Deger += "<a href=\"" + parAdres_Satiri + "&gecerli_sayfa=" + intOnceki_Sayfa + "\" title=\"Önceki Sayfa\">[««]</a>";
}
//Adım 6
for (Int32 i = 1; i < intSol_Grup_Sayisi + 1; i++)
{
if (i == parGecerli_Sayfa)
{
strDonen_Deger += "<a title=\"" + i + ". Sayfa\" class=\"secili\">" + i + "</a>";
}
else
{
strDonen_Deger += "<a title=\"" + i + ". Sayfa\" href=\"" + parAdres_Satiri + "&gecerli_sayfa=" + i + "\">" + i + "</a>";
}
}
//Adım 7
if (intSayfa_Alt_Siniri - intSol_Grup_Sayisi > 1)
{
strDonen_Deger += "<a>. . .</a>";
}
//Adım 8
for (Int32 i = intSayfa_Alt_Siniri; i < intSayfa_Ust_Siniri + 1; i++)
{
if (i == parGecerli_Sayfa)
{
strDonen_Deger += "<a title=\"" + i + ". Sayfa\" class=\"secili\">" + i + "</a>";
}
else
{
strDonen_Deger += "<a title=\"" + i + ". Sayfa\" href=\"" + parAdres_Satiri + "&gecerli_sayfa=" + i + "\">" + i + "</a>";
}
}
//Adım 9
if (intSag_Alt_Sinir - intSayfa_Ust_Siniri > 1)
{
strDonen_Deger += "<a>. . .</a>";
}
//Adım 10
for (Int32 i = intSag_Alt_Sinir; i < intSayfa_Sayisi + 1; i++)
{
if (i == parGecerli_Sayfa)
{
strDonen_Deger += "<a title=\"" + i + ". Sayfa\" class=\"secili\">" + i + "</a>";
}
else
{
strDonen_Deger += "<a title=\"" + i + ". Sayfa\" href=\"" + parAdres_Satiri + "&gecerli_sayfa=" + i + "\">" + i + "</a>";
}
}
//Adım 11
if (parGecerli_Sayfa != intSayfa_Sayisi)
{
Int32 intSonraki_Sayfa = parGecerli_Sayfa += 1;
strDonen_Deger += "<a href=\"" + parAdres_Satiri + "&gecerli_sayfa=" + intSonraki_Sayfa + "\" title=\"Sonraki Sayfa\">[»]</a>";
strDonen_Deger += "<a href=\"" + parAdres_Satiri + "&gecerli_sayfa=" + intSayfa_Sayisi + "\" title=\"En Son Sayfa\">[»»]</a>";
}
}
strDonen_Deger += "</div>";
return strDonen_Deger;
}
CSS kısmı
.sayfalama_kapsul{margin:3px 0px;}
.sayfalama_kapsul a{display:inline-block;float:left;padding:1px 4px;margin-right:1px;font-size:11px;background:#353C44;color:#fff !important;text-decoration:none;letter-spacing:1px;border-radius:3px;}
.sayfalama_kapsul a:hover{background:#9A0124;color:#fefefe;}
.sayfalama_kapsul a.secili{background:#9A0124;color:#fefefe !important;}
Default.aspx adlı sayfamızın içeriği
<asp:Literal ID="ltrSayfalama" runat="server"></asp:Literal>
Default.aspx.cs adlı sayfamızın içeriği
ltrSayfalama.Text = clsSayfalama("?islem=icerikler", 3, 50);
Sonuç olarak