DataPager (Veri Sayfalayıcı) Kontrolü

Eyl 06, 2013

ASP.NET Framework 3.5 ile gelen DataPager (Veri Sayfalayıcı) kontrolü;  Gridview (Izgara Görünümü), ListView (Liste Görünüm) gibi  veri bağlama denetimlerini sayfalandırmak için kullanılan bir kontroldür. DataPager (Veri Sayfalayıcı) kontrolü sayfalandırma şeklinin ve bağlantılarının kişiselleştirilmesine olanak sağlar. Bu kontrolde kullanılabilecek öznitelikler;

  • PagedControlID (Sayfalanacak Kontrolün Kimliği): Sayfalandırılacak kontrolün kimliğini belirtir
  • PageSize (Sayfa Boyutu): Her sayfada gösterilecek veri sayısını tanımlamak için kullanılır.
  • Fields (Alanlar): Kontroldeki sayfalandırma alanını bildiren nesneleri içinde barındırır.
    • NextPreviousPagerField (İleri Geri Sayfalama Alanı): Sayfalandırma alanına; ilk, ileri, geri, son şeklinde bağlantılara eklenmesini sağlar.
    • NumericPagerField (Numaralandırlılmış Sayfalama Alanı): Sayfalandırma alanında, sayfalara sayfa numaralarıyla bağlantı verir. Aktif olan sayfanın bağlantısı pasiftir.
    • TemplatePagerField (Sayfalama Alanı Şablonu): Yazılımcının, istenilen şekilde sayfalama ara yüzü tasarlamasına olanak sağlar.

Uygulama

Bu uygulamada, DataPager (Veri Sayfalayıcı) örnek SQL veritabanı üzerinde çalışan ListView (Liste Görünümü) kontrolünü sayfalandırmak için kullanılacaktır. Uygulamada kullanılacak örnek veritabanının yapısı şu şekildedir;

Sayfalandırılacak ListView (Liste Görünümü) kontrolü aşağıdaki gibidir. Bu kontrolün detaylı kullanımı ListView (Liste Görünümü) Kontrolü dokümanında açıklanmıştır.

<asp:ListView ID="OgrencilerListe" DataSourceID="OgrencilerData" runat="server">
         <ItemTemplate>
            isim:
            <asp:Label ID="isimLablel" runat="server" Text='<%# Eval("isim") %>' />
            <br />
            numara:
            <asp:Label ID="numLabel" runat="server" Text='<%# Eval("numara") %>' />
            <br />
            <br />
        </ItemTemplate>
        <LayoutTemplate>
            <div ID="itemPlaceholderContainer" runat="server" >
                <span ID="itemPlaceholder" runat="server"> </span>
            </div>
        </LayoutTemplate>
</asp:ListView>

OgrencilerListe kimlikli liste kontrolünü ilk sayfa, sayfa numaraları ve son sayfa şeklinde sayfalama yapacak ve ekrandaki kayıtlar hakkında bilgi verecek DataPager (Veri Sayfalayıcı) kontrolü aşağıdaki gibidir. Her sayfadaki veri sayısı PageSize (Sayfa Boyutu) ile beş olarak tanımlanmış olup sayfalanacak veri PagedControlID (Sayfalanacak Kontrolün Kimliği) ile belirtilmiştir.

<asp:DataPager ID="OgrencilerSayfalayici" PagedControlID="OgrencilerListe" runat="server" PageSize="5">
        <Fields>
            <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True"
            ShowNextPageButton="False" ShowPreviousPageButton="False"             ShowLastPageButton="False" />
            <asp:NumericPagerField />
            <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="False"
            ShowNextPageButton="False" ShowPreviousPageButton="False"             ShowLastPageButton="True" />
            <asp:TemplatePagerField>
                <PagerTemplate>
                    <asp:Label ID="ilkData" runat="server" Text="<%#
                        Container.StartRowIndex + 1 %>" />
                    ile
                    <asp:Label ID="sonData" runat="server" Text="<%#
                        ((Container.StartRowIndex +
                        Container.PageSize > Container.TotalRowCount) ? 
                        (Container.TotalRowCount) :
                        Container.StartRowIndex + Container.PageSize)) %>" />
                    arası kayıtlar gösterilmektedir.
                </PagerTemplate>
            </asp:TemplatePagerField>
        </Fields>
</asp:DataPager>

Veritabanı bağlantısı ise şu şekildedir;

<asp:SqlDataSource ID="OgrencilerData" runat="server" 
        ConnectionString="Provider=SQLOLEDB.1;Data Source=.\SQLEXPRESS;
        Integrated Security=SSPI; InitialCatalog=OrnekDatabase" 
        ProviderName="System.Data.OleDb" 
        SelectCommand="SELECT [isim], [numara] FROM [OrnekTablo]">
</asp:SqlDataSource>