Asp.Net ile yaptığınız çalışmalarınızda uzun veriler içeren uygulamalarda gelişmiş sayfalama sistemi örneğimiz.
Haberler.aspx Dosyasının İçeriği
<div class="kapsul">
<asp:Repeater ID="rptHaberler" runat="server">
<HeaderTemplate>
<table class="wfull genel_tablo">
<tr>
<th>
No
</th>
<th>
Resim
</th>
<th>
Başlık
</th>
<th>
#
</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%#Eval("haber_ID")%>
</td>
<td>
<a href="Haber.aspx?haber_ID=<%#Eval("haber_ID")%>"><%#String.IsNullOrEmpty(Eval("resim_kucuk").ToString()) == false ? "<img src=\"" + Eval("resim_kucuk") + "\" alt=\"\" />" : "<img src=\"images/resim_yok.jpg\" alt=\"\" />"%></a>
</td>
<td>
<h2><%#Eval("baslik")%></h2>
</td>
<td>
<a href="Haber.aspx?haber_ID=<%#Eval("haber_ID")%>">Devamı</a>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<asp:Literal ID="ltrHaber_Sayfalama" runat="server"></asp:Literal>
<div class="temizleyici"></div>
<a class="ontedi" href="http://www.ontedi.com" target="_blank">www.ontedi.com</a>
</div>
Haberler.aspx.cs Dosyasının İçeriği
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.OleDb;
using System.Text.RegularExpressions;
using System.Configuration;
public partial class Haberler : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
fnHaberler();
}
public Int32 parAdet = 4;
private void fnHaberler()
{
Int32 intGosterim_Adeti = parAdet;
String strGecerli_Sayfa = Request.QueryString["gecerli_sayfa"];
Int32 intGecerli_Sayfa = 1;
if (fnSayisal_Mi(strGecerli_Sayfa) == true)
{
intGecerli_Sayfa = Convert.ToInt32(strGecerli_Sayfa);
}
String strSQL_Kriter = "WHERE durum = -1";
Int32 intToplam_Kayit = fnToplam_Kayit("tblHaberler", strSQL_Kriter);
Int32 intBaslangic_Degeri;
String strSQL;
if (intGecerli_Sayfa == 1)
{
strSQL = "SELECT top " + intGosterim_Adeti + " haber_ID, baslik, resim_kucuk, tarih FROM tblHaberler " + strSQL_Kriter + "";
}
else
{
intBaslangic_Degeri = (intGecerli_Sayfa - 1) * intGosterim_Adeti;
strSQL = "SELECT top " + intGosterim_Adeti + " haber_ID, baslik, resim_kucuk, tarih FROM tblHaberler " + strSQL_Kriter + " AND (haber_ID NOT IN (Select top " + intBaslangic_Degeri + " haber_ID FROM tblHaberler " + strSQL_Kriter + "))";
}
ltrHaber_Sayfalama.Text = fnSayfalama("?i", intGecerli_Sayfa, intToplam_Kayit);
OleDbConnection bag = fnBaglan();
OleDbCommand cmdSQL = new OleDbCommand(strSQL, bag);
bag.Open();
rptHaberler.DataSource = cmdSQL.ExecuteReader();
rptHaberler.DataBind();
cmdSQL.Dispose();
bag.Close();
bag.Dispose();
}
public OleDbConnection fnBaglan()
{
OleDbConnection bag = new OleDbConnection(ConfigurationManager.ConnectionStrings["accessDB"].ConnectionString);
return bag;
}
public String fnTemizle(String parVeri)
{
if (String.IsNullOrEmpty(parVeri) == false)
{
parVeri = parVeri.Replace("'", "");
parVeri = parVeri.Replace(">", "");
parVeri = parVeri.Replace("<", "");
parVeri = parVeri.Replace("%", "");
parVeri = parVeri.Replace("*", "");
}
return parVeri;
}
public Boolean fnSayisal_Mi(String parVeri)
{
Boolean blnDonen_Deger = false;
if (String.IsNullOrEmpty(parVeri) == true)
{
blnDonen_Deger = false;
}
else
{
Regex desen = new Regex("^[0-9]*$");
blnDonen_Deger = desen.IsMatch(parVeri);
}
return blnDonen_Deger;
}
public String fnSayfalama(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;
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;
}
public Int32 fnToplam_Kayit(String parTablo, String parKriter)
{
Int32 intDonen_Deger = 0;
if (String.IsNullOrEmpty(parTablo) == false)
{
if (String.IsNullOrEmpty(parKriter) == false)
{
OleDbConnection bag = fnBaglan();
OleDbCommand cmdSQL = new OleDbCommand("SELECT Count(*) AS T FROM " + parTablo + " " + parKriter + "", bag);
bag.Open();
OleDbDataReader drSQL = cmdSQL.ExecuteReader();
if (drSQL.HasRows == true)
{
drSQL.Read();
{
String strToplam = drSQL["T"].ToString();
if (fnSayisal_Mi(strToplam) == true)
{
intDonen_Deger = Convert.ToInt32(strToplam);
}
}
}
else
{
intDonen_Deger = 0;
}
drSQL.Dispose();
cmdSQL.Dispose();
bag.Close();
bag.Dispose();
}
}
return intDonen_Deger;
}
}
style.css dosyasının içeriği
/*
************************************************
Programlama ::::::::::::::: Serkan TOGAL
Telif Hakları ::::::::::::: www.ontedi.com
************************************************
*/
*{margin:0px;padding:0px;border:0px;font-size:100%;font:inherit;vertical-align:baseline;border-spacing:0px;}
body{font-family:"Arial", Tahoma, Sans-Serif;font-size:14px;color:#545353;}
.kapsul{margin:0px auto;width:500px;}
/* Genel Tablo (Başlangıç) */
.genel_tablo{}
.genel_tablo th{vertical-align:middle;background-color:#B8BCBF;font-size:13px;color:#182833;line-height:19px;-moz-text-shadow:#a4a39f 0px 1px 0px;-webkit-text-shadow:#a4a39f 0px 1px 0px;text-shadow:#a4a39f 0px 1px 0px;padding:0px 7px 0px 13px;text-align:left;height:30px;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border-right:1px solid #a4a3a0;}
.genel_tablo tr:hover{background:#f2f2f2;}
.genel_tablo td{font-size:13px;color:#737577;line-height:19px;padding:3px;font-weight:normal;text-align:left;height:30px;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:0px;border-bottom:1px solid #e7e7e7;vertical-align:middle;}
.genel_tablo td img{padding:2px;float:left;}
.genel_tablo td a{text-decoration:none;color:#D9290B;}
.genel_tablo td a:hover{text-decoration:underline;}
/* Genel Tablo (Bitiş) */
.ontedi{color:#9A0124;background:#d6d6d6;float:right;padding:0px 3px;line-height:22px;margin-top:4px;text-decoration:none;border-radius:3px 0px 0px 3px;}
/* Sayfalama (Başlangıç) */
.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;}
/* Sayfalama (Başlangıç) */
/* Kütüphane (Başlangıç) */
.temizleyici{clear:both;}
.wfull{width:100% !important;}
/* Kütüphane (Bitiş) */
veritabani.mdb isimli access veritabanında tblHaberler adlı tablomuzun tsql kodları
CREATE Table tblHaberler
(
haber_ID AutoIncrement,
resim_kucuk TEXT(255),
resim_orta TEXT(255),
resim_buyuk TEXT(255),
baslik TEXT(255),
ozet text,
icerik MEMO,
tarih datetime,
durum bit
)
web.config dosyasının içeriği
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="accessDB" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\veritabani.mdb" providerName="System.Data.OleDb" />
</connectionStrings>
<system.web>
<pages validateRequest="false" enableEventValidation="false" enableViewStateMac="false" viewStateEncryptionMode="Never" />
<compilation debug="true" targetFramework="4.0" />
<customErrors mode="Off" />
<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8" />
</system.web>
</configuration>