Asp.Net Access Verilerini Gelişmiş Sayfalama Örneği

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>
Örnek
Asp.Net Access Verilerini Gelişmiş Sayfalama Örneği

Yorumlar

  • Ali

    Ali:

    3 yıl önce

    Üstad eline sağlık, beni collectionpager.dll den kurtardın.
    8 cevapla
  • Yönetici Yorumu:

    İlginiz için ben teşekkür ederim. Bazı dll ile yapılan uygulamalar maalesef ki esneklik sağlamamaktadır.

Yorum Yaz

Avatar

REKLAM

DDos Koruma, Botnet Koruma, Layer 7 Saldırı koruması, Sanal sunucu, Vds sunucu

REKLAM

Çizgi Filmler

EN

  • Popüler
  • Yeni
  • Son Yorum