Verilerimizi listeme islemlerinde sade ve kolay kullanimi olmasindan dolayi Repeater kontrolunu bir çok yerde kullaniriz... Verilerimizi Repeater kontrolümü bind ettikten sonra güzel bir sekilde listeleniyor ama eger Repeter kontrolümüz bos ise ne yapacagiz ? Benim gibi saatlerde içinde veri yoksa nasil uyari mesajii gösteririm diye aramaniza gerek yok. Kolay bir sekilde gösterilebiliyor.
Veritabanindan verileri çekip Repeater nesnesine bind yaptigimizi farz ediyorum;
<asp:Repeater ID="Repeater2" runat="server" onitemdatabound="Repeater2_ItemDataBound">
<ItemTemplate>
<%#Eval("tarih")%><br /><a href="duyurular.aspx?id=<%# Eval("id") %>" style="text-decoration: none"></a>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("baslik") %>' Font-Bold="True" ForeColor="Maroon"></asp:Label>
<br/>
<asp:Label ID="Label4" runat="server" Text='<%#Eval("deneme").ToString().Substring(0, 20)%>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="lblbosmsj" Visible="false" Text="Henüz veri girisi yapilmamis !!!" runat="server" Font-Bold="True"></asp:Label>
</FooterTemplate>
</asp:Repeater>
Kontrolü yapacagimiz yer ise ItemDataBound olayi.Eger Repeater kontrolünde hiç satir yoksa bos iletimizin bulundugu Label nesnesini bulup durumunu “true” yapiyoruz.
Protected Sub Repeater1_ItemDataBound(sender As Object, e As RepeaterItemEventArgs)
If Repeater1.Items.Count < 1 Then
If e.Item.ItemType = ListItemType.Footer Then
Dim lblbosmsj As Label = DirectCast(e.Item.FindControl("lblbosmsj"), Label)
lblbosmsj.Visible = True
End If
End If
End Sub