2012-06-11 16 views
5

एएसपी.नेट में, वीबी का उपयोग करके, मैं इसे पृष्ठ पर कैसे कर सकता हूं, कोड के पीछे नहीं?पुनरावर्तक नियंत्रण के अंदर सशर्त तर्क?

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

अपने उदाहरण काम करता है? – jrummell

+0

नहीं, यह काम नहीं करता है। – lgriffin

+0

बढ़िया, यह कैसे काम नहीं करता है? क्या आपको संकलन त्रुटि मिलती है? एक रनटाइम अपवाद? – jrummell

उत्तर

4

अपने डेटा स्रोत में एक बूलियन संपत्ति बनाएं उदा। filenameExists और इस का उपयोग एक हाइपरलिंक

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

ठीक है, यह मुझे सही दिशा में इंगित किया, धन्यवाद। – lgriffin

0

आप If और End If के लिए खुले और बंद कोष्ठक याद कर रहे हैं के दर्शनीय संपत्ति के खिलाफ DataBind रहे हैं:

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

यह सही दिशा में एक शुरुआत है, लेकिन ब्राउज़र में चलते समय मुझे यह मिल रहा है: कंपाइलर त्रुटि संदेश: BC30451: नाम 'कंटेनर' घोषित नहीं किया गया है। – lgriffin

+0

यदि मुझे सही याद है, तो 'कंटेनर' केवल डेटा बाइंडिंग सिंटैक्स ('<%# %>') के साथ उपलब्ध है। अगर मैं सही हूं (यह थोड़ी देर के बाद से मैंने वेबफॉर्म के साथ काम किया), ग्राहम के जवाब के साथ जाओ। – jrummell

+0

करेंगे, आपके समय के लिए धन्यवाद। – lgriffin

1

इस का उपयोग कर समाप्त, आपकी मदद लोग के लिए धन्यवाद!

पृष्ठ पर:

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

पीछे कोड:

Function showPDF(ByVal pdf As String) As Boolean 
    If pdf <> "" Then 
     Return True 
    Else 
     Return False 
    End If 
End Function 
संबंधित मुद्दे