2012-06-11 19 views
5

ASP.NET'te, VB'yi kullanarak, bunu sayfada kodun arkasında değil, nasıl yapabilirim?Tekrarlayıcı Denetimi içindeki koşullu mantık?

<ItemTemplate> 
    <% If Container.DataItem("filename") <> "" Then 
     <a href="/pdf/"><%# Container.DataItem("filename") %>Agenda</a> 
    End If%> 
</ItemTemplate> 
+0

senin örneğin çalışıyor mu? – jrummell

+0

Hayır işe yaramıyor. – lgriffin

+0

Harika, nasıl çalışmıyor? Derleme hatası mı alıyorsunuz? bir çalışma zamanı istisnası? – jrummell

cevap

4

Veri kaynağınızda bir boolean özelliği oluşturun örn. filenameExists ve bu kullanmak

<asp:HyperLink runat="server" Visible='<%# Eval("filenameExists ") %>' NavigateUrl="/pdf/">Agenda</asp:HyperLink> 
+0

Tamam, bu bana doğru yönde işaret etti, teşekkürler. – lgriffin

0

Sen If ve End If açık ve kapalı parantez eksik köprüden Görünür mala karşı databind için:

<ItemTemplate> 
    <% If Container.DataItem("filename") <> "" Then %> 
     <a href="/pdf/"><%# Container.DataItem("filename") %>Agenda</a> 
    <% End If %> 
</ItemTemplate> 
+0

Bu, doğru yönde bir başlangıçtır, ancak bir tarayıcıda çalışırken bunu alıyorum: Derleyici Hata İletisi: BC30451: 'Container' adı belirtilmemiş. – lgriffin

+0

Doğru hatırlıyorsam, 'Container' yalnızca DataBinding sözdizimi ile kullanılabilir (' <%# %> '). Eğer haklıysam (WebForms ile çalışmamdan beri bir süre geçti), graham'ın cevabı ile devam edin. – jrummell

+0

Yapacak, zaman ayırdığınız için teşekkürler. – lgriffin

1

bu kullanarak sona erdi, senin yardım çocuklar için teşekkürler! sayfada

: arkasında

<asp:Literal ID="ltPDF" runat="server" Visible='<%# showPDF(Container.DataItem("filename")) %>'>Test</asp:Literal> 

Kodu:

Function showPDF(ByVal pdf As String) As Boolean 
    If pdf <> "" Then 
     Return True 
    Else 
     Return False 
    End If 
End Function