ASP.NET Framework 3.5 sürümü ile gelen veri bağlama denetimlerinden olan Listview, Gridview denetimine birçok yönden benzemektedir. Temel farkı ise bağlanan verileri satır alanlarında değil de kullanıcı tarafından tanımlanabilen şablonlar ile gösterebilmesidir. Bu özellik tasarımcıya verinin görünümü üzerinde daha fazla esneklik kazandırır. Listview denetiminin kullanılabilmesi için, içerisindeki şablonların denetimin farklı bölümleri için tanımlanması gerekir. LayoutTemplate(Yerleşim Şablonu) ve ItemTemplate(Madde Şablonu) kullanımı zorunlu şablonlardır. Diğer şablonlar isteğe bağlı olarak kullanılabilir. Denetimin tüm şablonlarının listesi aşağıdadır.
- LayoutTemplate(Yerleşim Şablonu): Tablo(<table>), bölüm(<div>) gibi nesneleri tanımlamaya yarayan, ItemTemplate(Madde Şablonu) veyaGroupTemplate(Grup Şablonu) öğelerinde tanımlanan içeriği barındıran ana şablondur.
- ItemTemplate(Madde Şablonu): Tekil maddeleri(satır gibi) görüntülemek için oluşturulan bağlanmış veriyi tanımlamak için kullanılır.
- ItemSeparatorTemplate(Madde Ayırıcı Şablon): Maddeler arasında ayırıcı kullanmak için kullanılan şablondur.
- GroupTemplate(Grup Şablonu): Tablo satırı(<tr>), bölüm gibi nesneleri tanımlamaya yarayan, ItemTemplate veya EmptyItemTemplate öğelerinde tanımlanan içeriği barındıran şablondur.
- GroupSeparatorTemplate(Grup Ayırıcı Şablon): Madde grupları arasında ayırıcı özellikteki içeriği tanımlar.
- EmptyItemTemplate(Boş Madde Şablonu): Bir GroupTemplate kullanıldığında, boş bir madde için oluşacak olan içeriğin tanımlanmasında kullanılan şablondur.
- EmptyDataTemplate(Boş Veri Şablonu): Veri kaynağı hiçbir değer döndürmediğinde gerekli olan içeriği tanımlar.
- SelectedItemTemplate(Seçili Madde Şablonu): Seçili olan veri maddesini, diğer maddelerden ayırt etmek için kullanılan içerik bu şablon ile tanımlanır.
- AlternatingItemTemplate(Alternatif Madde Şablonu): Ardışık veri maddelerini birbirinden farklı kılmak için kullanılan şablondur.
- EditItemTemplate(Madde Düzenleme Şablonu): Bir madde düzenleneceği zaman devreye girecek olan şablondur. EditItemTemplate şablonu, düzenlenecek olan veri için ItemTemplate şablonunun yerinde görüntülenir.
- InsertItemTemplate(Madde Ekleme Şablonu): Madde eklemek için kullanılan içeriği tanımlamak için kullanılır.
Uygulama
Repeater veya Gridview denetimlerine çok benzediği yukarıda belirtilmiş olan Listview denetimi ile bu örnekte benzer bir uygulama gösterilmiştir.
Denetimden, veritabanındaki bilgilerden ad, soyad ve fakülte bilgilerinin gösterilmesi istenmiştir.
<div>
<h2>Listview Uygulama</h2>
<asp:ListView ID="ornListview" runat="server">
<LayoutTemplate>
<table border="1" width="300" cellpadding="5">
<tr style="background-colors:Gray">
<td>İsim</td>
<td>Soyisim</td>
<td>Fakülte</td>
</tr>
<tr id="itemPlaceHolder" runat="server"></tr>
</table>
</LayoutTemplate>
</ItemTemplate>
<tr>
<td>
<%#Eval("AD") %>
</td>
<td>
<%#Eval("SOYAD") %>
</td>
<td>
<%#Eval("FAKULTE") %>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
</div>
Veritabanına arka plandaki bağlantı şu şekildedir.
Database db = DatabaseFactory.CreateDatabase("ornekBaglanti");
DataSet ds = db.ExecuteDataSet(CommandType.Text,
"SELECT AD, SOYAD, FAKULTE FROM OrnekTablo");
ornRepeater.DataSource = ds;
ornRepeater.DataBind();
İstenilen değerlerin yansıtıldığı ekran görüntüsü de aşağıdaki gibidir.