2012-06-11 20 views
5

ASP.NETでは、VBを使用して、どのように私はページ自体ではなく、コードの背後にこれを行うことができますか?リピータ制御内の条件付きロジック?

<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

のVisibleプロパティに対してデータバインドするためにこれを使用するあなたはIfEnd Ifのためのオープンとクローズかっこが欠落している:

、あなたの助けみんなに感謝し、これを使用して終了
<ItemTemplate> 
    <% If Container.DataItem("filename") <> "" Then %> 
     <a href="/pdf/"><%# Container.DataItem("filename") %>Agenda</a> 
    <% End If %> 
</ItemTemplate> 
+0

これは正しい方向へのスタートですが、ブラウザで実行しているときにこれを取得しています。コンパイラエラーメッセージ:BC30451:名前 'Container'が宣言されていません。 – lgriffin

+0

私が正しく覚えていれば、 'Container'はDataBinding構文( '<%# %>')でのみ利用可能です。私が正しければ(それがWebFormsで作業してからしばらくの間)、グレアムの答えに従ってください。 – 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 
関連する問題