Makale Özeti

Merhaba arkadaşlar, bu makalemizde orcas beta 2 ile birlikte gelen olan Listview ve DataPager kontrollerine ve bize kazandırdıklarına bakacağız.

Makale

Listview

Listview kontrolü template’lere bağlı olarak çalışan yeni bir listeleme kontrolüdür. Bu kontrol kendi html çıktısını üretmez. Bunun yerine Datalist nesnesine benzeyen templateleri kullanarak datayı listelememizi sağlar. Bu templateler şunlardır,

*        LayoutTemplate

*        ItemTemplate

*        AlternatingItemTemplate

*        SelectedItemTemplate

*        EditItemTemplate

*        InsertItemTemplate

*        EmptyItemTemplate

*        EmptyDataTemplate

*        ItemSeparatorTemplate

*        GroupTemplate

*        GroupSeparatorTemplate

Datayı listelemek için en çok kullanılan 2 template’i vardır.   LayoutTemplate ve ItemTemplate. Layout template datanın dışarıda tanımlanmasını sağlayabilir. Item template ise datanın liste içerisinde tanımlanmasını sağlar. 

Layout templete içerisinde dinamik itemtemplateler kullanmak için ItemContainer’lar tanımlayabiliriz.

Örnek           

     <asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource1"

            EnableTheming="False">

            <ItemTemplate>

                <div>

--Databaseden gelecek Datalar,

                </div>

            </ItemTemplate>

            <LayoutTemplate> 

                                   --Dışarıdan yada dinamik olarak listeleyeceğimiz kayıtlar

                </LayoutTemplate> 

                            </asp:ListView>

 

DataPager

Datapager kontorlü orcas ile gelen yeni bir asp.net kontrlüdür. Listview kontrolü üzerinde sayfalama yapmamızı sağlar. Sayfalama yapacağımız kontrolü belirlemek için; PagedControlID ve sayfada kaç kayıt listeleneceğini belirlemek içinde PageSize özellikleri kullanılır. Bu kontrol ile çok kolay bir biçinde sayfalama işlemlerini yapabiliriz.

Örnek

    <asp:DataPager ID="DataPager1" runat="server" PagedControlID="ListView1" PageSize="5">

*        Sayfalanacak olan Listview kontrolü

*        Her sayfada 5 kayıt listelenecek

             <Fields>

                <asp:NextPreviousPagerField ButtonType="Link" ShowFirstPageButton="True" ShowNextPageButton="False"

                    ShowPreviousPageButton="False" />

*        İleriGeri butonu, ilk kayda gitmek için kullanılır, button, link ve image olabilir

                <asp:NumericPagerField />

*        Numeric sayfalamanın yapılmasını sağlar…

                <asp:NextPreviousPagerField ButtonType="Link" ShowLastPageButton="True" ShowNextPageButton="False"

                    ShowPreviousPageButton="False" />

*        İleriGeri butonu, son kayda gitmek için kullanılır, button, link ve image olabilir

            </Fields>

        </asp:DataPager>

 

Konu ile ilgili örnek bir uygulama yapalım; İlk olarak Visual Studio 2008 açalım ve yeni bir web projesi oluşturalım;

 

Daha sonra sayfamıza SQLDataSource, listview ve Datapager kontrolü ekleyelim; SQLDataSource nesnesini kullanarak verileri listeleyeceğiz.

 

Yukarıdaki gibi bir görüntü elde edeceksiniz;  Şimdi verilerin getirilmesini sağlayalım.

   <asp:SqlDataSource ID="SqlDataSource1" runat="server"

            ConnectionString="<%$ ConnectionStrings:ConnectionString %>"

            SelectCommand="SELECT [CategoryID], [Name], [Description] FROM [ArticleCategories]">

        </asp:SqlDataSource>

Verileri çektik şimdi de Listview içerisinde verilerin bind edilebilmesi için listview nesnesini tempatelerini ayarlıyalım; Listemizde sadece Kategori adı ve Description listelenecek…

<asp:ListView ID="ListView1" runat="server"

            EnableTheming="False">

            <ItemTemplate>

                <div>

                    <h2>

                        <%# Eval("Name") %></h2>

                    <ul>

                        <li>

                            <%# Eval("Description") %></li>

                    </ul>

                </div>

            </ItemTemplate>

            <LayoutTemplate> 

       <li>         <asp:PlaceHolder ID="itemContainer" runat="server"></asp:PlaceHolder></li>

                </LayoutTemplate> 

                </asp:ListView>

Son olarak da listview kontrolümüzün sayfalamasını halledelim;

    <asp:DataPager ID="DataPager1" runat="server" PagedControlID="ListView1" PageSize="3">

            <Fields>

                <asp:NextPreviousPagerField ButtonType="Link" ShowFirstPageButton="True" ShowNextPageButton="False"

                    ShowPreviousPageButton="False" />

                <asp:NumericPagerField />

                <asp:NextPreviousPagerField ButtonType="Link" ShowLastPageButton="True" ShowNextPageButton="False"

                    ShowPreviousPageButton="False" />

            </Fields>

        </asp:DataPager>

Evet artık uygulamamızı çalıştırabiliriz;

 

Güzel bir şekilde listelemeyi yaptı, şimdi 2. sayfaya geçelim J



Vay be, eskiden ne çok uğraştırırdı bizi şimdi çok kolay
J Büyüksün Microsoft diyor ve başka bir makale de görüşmek üzere sizlere iyi günler diliyorum J

Örnek kodlar için mail adresimi kullanabilirsiniz

Sem GÖKSU
info@semgoksu.com

MCP (Microsoft Certified Professional)
MCAD (Microsoft Certified Application Developer)
MCTS (Microsoft Certified Technology Specialist)

Kaynaklar

MSDN