
aspxファイルで、以下のようにデータリストを使用しています。
<asp:DataList ID="datalistBiographies" runat="server" RepeatDirection="Horizontal" Width="100%">
<ItemTemplate>
<p>
<a href='BiographyInfo.aspx?id=<%# Eval("BiographyID") %>'>View Biography</a><br />
<a id="lnkProjects" href='<%#Eval("ProjectPicture") %>'>Submitted Projects</a>
</p>
</ItemTemplate>
</asp:DataList>
ここで、ProjectPictureの値が空文字列のときにこの<a>タグを表示したくないのですが、ASPのときは以下のようにしましたがASP.Netではどのようにすればいいでしょうか?
<% If (Not Len(ProjectPicture) > 0) Then %>
<a id="lnkProjects" href='<%#Eval("ProjectPicture") %>'>Submitted Projects</a>
<% End If %>
基本的なことですみませんがよろしくお願いします。検索の仕方が悪いのか自分で調べることができませんでした。
No.1ベストアンサー
- 回答日時:
<asp:DataList ID="datalistBiographies" runat="server" RepeatDirection="Horizontal" Width="100%">
<ItemTemplate>
<p>
<a href='BiographyInfo.aspx?id=<%# Eval("BiographyID") %>'>View Biography</a><br />
<a runat="server" id="lnkProjects" href="">Submitted Projects</a>
</p>
</ItemTemplate>
</asp:DataList>
<script runat="server">
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs)
If ProjectPicture.Length = 0 Then
Me.lnkProjects.Visible = False
Else
Me.lnkProjects.Href = ProjectPicture
End If
End Sub
</script>
ASPXではHTMLとプログラムコードが分離しているので、こんな感じになります。
この回答への補足
以下のエラーになってしまいました。lnkProjectsがデータリストのItemTemplateに入っているからか、参照できないみたいです。
The name 'lnkProjects' does not exist in the current context.
自己解決しました。
DataListのItemDataBoundイベントを以下のように実装しました。
protected void datalistProjects_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.DataItem is DataRowView)
{
DataRowView row = (DataRowView)e.Item.DataItem;
if (row["ProjectPicture"] == null || row["ProjectPicture"].ToString().Length == 0)
{
WebControl link = (WebControl)e.Item.FindControl("lnkProjects");
link.Visible = false;
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルに張り付けた写真のフ...
-
キヤノン アソビカメラ iNSPiC ...
-
VB.NET Excelを読み込んでDataT...
-
aspxをhtmlに変換する方法について
-
vba 空のデータをSplitする時の...
-
VBAでPDFを作成する際、同じ名...
-
phpのファイルがブラウザで開か...
-
【VB.NET】Excelの最終行までの...
-
バッチで当日日付で作成される...
-
高校1年生情報の問題について。
-
エクセルVBAで印刷する書式をク...
-
Windows10にデュアルブートでXP...
-
Windowsで複数のファイルを同じ...
-
vba マージエリアの行数を非表...
-
SJISで、全角文字Aの文字コード...
-
SPO2測定
-
エクセルのマクロについて教え...
-
インドe-Visa 承認書のApplicat...
-
SPIの非言語の割合と比が難しく...
-
SPIの対策は参考書でやるべきか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
aspxでIFみたいなことがしたい
-
ASP.netで、CheckBoxListのSele...
-
クリックしたボタンのIDの取得
-
c#側で ラジオボタンのチェック...
-
FormView から別画面でカレンダ...
-
javascriptでlabelの値取得
-
<asp>タグの属性情報が取得でき...
-
ASP.NETで質問です。
-
ASP.Net DataBound時Style変2
-
ASP.NETでTimerコントロールを...
-
HTMLの値の渡し方について質問...
-
ACCESSのレポートの表示...
-
遷移先のURLにパラメータを表示...
-
【Python初学者】以下コードに...
-
フォームのtextareaにnl2brを使...
-
改行したいのですが
-
write downとfill outの違いを...
-
C#のRichTextBoxで表示行数を取...
-
キリンビール(晴れ風)どうでし...
-
テキストボックスにマクロでメ...
おすすめ情報