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,
n LayoutTemplate
n ItemTemplate
n AlternatingItemTemplate
n SelectedItemTemplate
n EditItemTemplate
n InsertItemTemplate
n EmptyItemTemplate
n EmptyDataTemplate
n ItemSeparatorTemplate
n GroupTemplate
n 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">
n Sayfalanacak olan Listview kontrolü
n Her sayfada 5 kayıt listelenecek
<Fields>
<asp:NextPreviousPagerField ButtonType="Link" ShowFirstPageButton="True" ShowNextPageButton="False"
ShowPreviousPageButton="False" />
n İleriGeri butonu, ilk kayda gitmek için kullanılır, button, link ve image olabilir
<asp:NumericPagerField />
n Numeric sayfalamanın yapılmasını sağlar…
<asp:NextPreviousPagerField ButtonType="Link" ShowLastPageButton="True" ShowNextPageButton="False"
ShowPreviousPageButton="False" />
n İ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