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

Asp.Net ve MSSQL ile yaptığınız çalışmalarınızda uzun veriler içeren uygulamalarda gelişmiş sayfalama sistemi örneğimiz.

Sitil betiklerimiz
        *{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:12px;color:#545353;}

        .kapsul{margin:40px auto 0px auto;width:600px;}

        /* Tablo (Başlangıç) */
        .tablo{border-left:1px solid #d1d1d1;border-top:1px solid #d1d1d1;width:599px;}
        .tablo th{background-color:#F6F6F6;border-right:1px solid #d1d1d1;padding:3px 8px;}
        .tablo tr:hover{background:#f2f2f2;}
        .tablo td{background-color:#FEFEFE;border-right:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1;border-right:1px solid #d1d1d1;padding:3px 8px;}
        .tablo td a{text-decoration:none;color:#D9290B;}
        .tablo td a:hover{text-decoration:underline;}
        /* Tablo (Bitiş) */

        .ontedi{color:#9A0124;background:#d6d6d6;float:right;padding:0px 3px;line-height:22px;margin-top:8px;text-decoration:none;border-radius:3px 0px 0px 3px;}

        /* Sayfalama (Başlangıç) */
        .sayfalama_kapsul{margin:4px 0px 3px 0px;}
        .sayfalama_kapsul a{display:inline-block;float:left;padding:2px 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ıç) */
        .cb{clear:both;}
        /* Kütüphane (Bitiş) */
Urunler.aspx dosyamızın içeriği
    <div class="kapsul">
        <asp:Repeater ID="rptListele" runat="server">
            <HeaderTemplate>
                <table class="tablo">
                    <thead>
                        <tr>
                            <th>ID</th>
                            <th>Başlık</th>
                            <th>Tarih</th>
                            <th>Durum</th>
                            <th>İşlem</th>
                        </tr>
                    </thead>
                    <tbody>
            </HeaderTemplate>
            <ItemTemplate>
                        <tr>
                            <td><%#Eval("urun_ID")%></td>
                            <td><%#Eval("baslik")%></td>
                            <td><%#fnTarih(Eval("tarih").ToString(), true)%></td>
                            <td><%#fnOnayli_Onaysiz(Eval("durum").ToString())%></td>
                            <td><a href="?islem=urun_duzenle&urun_ID=<%#Eval("urun_ID")%>">Düzenle</a></td>
                        </tr>
            </ItemTemplate>
            <FooterTemplate>
                    </tbody>
                </table>
            </FooterTemplate>
        </asp:Repeater>
        <asp:Literal ID="ltrSayfalama" runat="server"></asp:Literal>
        <div class="cb"></div>
        <a class="ontedi">www.ontedi.com</a>
    </div>
Urunler.aspx.cs dosyamızın içeriği
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;
using System.Configuration;
using System.Data.SqlClient;

public partial class Urunler : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        String strIslem = Request.QueryString["islem"];

        fnUrunler();
    }
    public Int32 parAdet = 8;
    private void fnUrunler()
    {
        String strSQL_Kriter = "WHERE durum = 1";

        String strKelime = Request.QueryString["kelime"];
        strKelime = fnTemizle(strKelime);

        if (String.IsNullOrEmpty(strKelime) == false)
        {
            strSQL_Kriter = "WHERE urun_ID LIKE '%" + strKelime + "%' OR baslik LIKE '%" + strKelime + "%' OR ozet LIKE '%" + strKelime + "%' OR icerik LIKE '%" + strKelime + "%'";
        }

        Int32 intGecerli_Sayfa = 1;

        String strGecerli_Sayfa = Request.QueryString["gecerli_sayfa"];
        if (fnSayisal_Mi(strGecerli_Sayfa) == true)
        {
            intGecerli_Sayfa = Convert.ToInt32(strGecerli_Sayfa);
        }

        Int32 intGosterim_Adeti = parAdet;
        Int32 intToplam_Kayit = fnToplam_Kayit("tblUrunler", strSQL_Kriter);
        Int32 intBaslangic_Degeri = (intGecerli_Sayfa - 1) * intGosterim_Adeti;
        Int32 intBitis_Degeri = intGecerli_Sayfa * intGosterim_Adeti;
        ltrSayfalama.Text = fnSayfalama("?kelime=" + strKelime + "", intGecerli_Sayfa, intToplam_Kayit);

        SqlConnection bag = fnMssql();
        SqlCommand cmdSQL = new SqlCommand("SELECT urun_ID, baslik, tarih, durum FROM (SELECT row_number() over (order by urun_ID ASC) AS satir, * FROM tblUrunler " + strSQL_Kriter + ") AS tblTablo WHERE tblTablo.satir > " + intBaslangic_Degeri + " AND tblTablo.satir <= " + intBitis_Degeri + " order by urun_ID ASC", bag);
        bag.Open();
        rptListele.DataSource = cmdSQL.ExecuteReader();
        rptListele.DataBind();
        cmdSQL.Dispose();
        bag.Close();
        bag.Dispose();
    }
    public SqlConnection fnMssql()
    {
        SqlConnection bag = new SqlConnection(ConfigurationManager.ConnectionStrings["mssqlDB"].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)
            {
                SqlConnection bag = fnMssql();
                SqlCommand cmdSQL = new SqlCommand("SELECT Count(*) AS T FROM " + parTablo + " " + parKriter + "", bag);
                bag.Open();
                SqlDataReader 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;
    }
    public String fnTarih(String parTarih, Boolean blnSaat)
    {
        String strDonen_Deger = "";
        try
        {
            String[] arrAylar = { "", "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık" };
            String[] arrGunler = { "Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi" };
            DateTime dtmTarih = DateTime.Parse(parTarih);
            String strTarih = dtmTarih.ToString("yyyy-MM-dd HH:mm");
            Int32 intYil = dtmTarih.Year;
            String strYil = intYil.ToString();
            Int32 intAy = dtmTarih.Month;
            String strAy = arrAylar[intAy];
            Int32 intGun = dtmTarih.Day;
            String strGun = intGun.ToString();
            String strZaman = dtmTarih.ToShortTimeString();
            Int32 intHaftanin_Gunu = (Int32)dtmTarih.Date.DayOfWeek;
            String strGun_Adi = arrGunler[intHaftanin_Gunu];
            strDonen_Deger = strGun + " " + strAy + " " + strYil + " " + strGun_Adi;
            if (blnSaat == true)
            {
                strDonen_Deger = strDonen_Deger + ", " + strZaman;
            }
        }
        catch
        {

        }
        return strDonen_Deger;
    }
    public String fnOnayli_Onaysiz(String parVeri)
    {
        String strDonen_Deger = "";
        if (parVeri == "True")
        {
            strDonen_Deger = "<span style=\"color:green;\">Onaylı</span>";
        }
        if (parVeri == "False")
        {
            strDonen_Deger = "<span style=\"color:red;\">Onaysız</span>";
        }
        return strDonen_Deger;
    }
}
mutfakDB adlı veritabanında tblUrunler adlı tablomuzun tsql kodları
CREATE TABLE tblUrunler (
[urun_ID] int PRIMARY KEY NOT NULL IDENTITY(1,1),
[baslik] nvarchar(255),
[ozet] nvarchar(MAX),
[icerik] nvarchar(MAX),
[tarih] datetime NULL DEFAULT getdate(),
[okunma] int NULL DEFAULT 0,
[sira] int DEFAULT 0,
[durum] bit NULL DEFAULT 0
)
web.config dosyasının içeriği
<?xml version="1.0"?>
<configuration>
  <connectionStrings>
    <add name="mssqlDB" connectionString="Data Source=localhost;Initial Catalog=mutfakDB;User ID=sa;Password=1234" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  <system.web>
    <customErrors mode="Off"/>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
      </assemblies>
    </compilation>
    <httpRuntime requestValidationMode="2.0"/>
  </system.web>
  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".coffee" mimeType="coffeescript"/>
      <mimeMap fileExtension=".woff" mimeType="application/x-font-woff"/>
    </staticContent>
  </system.webServer>
</configuration>
Projemizin görünümü
Örnek
Asp.Net Mssql Verilerini Gelişmiş Sayfalama Örneği

Yorumlar

Henüz hiçbir yorum yazılmamış. İlk yorumu siz yapın.

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