- PR -

GridViewのImageについて

1
投稿者投稿内容
未記入
ベテラン
会議室デビュー日: 2008/01/15
投稿数: 65
投稿日時: 2008-05-14 20:02
お世話になります。
GridViewのImage表示について教えて下さい。
GridViewのImageFieldであればNullImageUrlでデータが無いときの画像を指定できますが、GridViewのImageFieldをTemplateに変換すると、<asp:Image>に変わりNullImageUrlが消えてしまいます。

この状態で実行すると該当データがないと画像が表示されません。(×の画像?になります)
展開形がSRC=""となってしまうことが原因なのですが、回避することはできないのでしょうか?
※データが無い時に、固定画像を表示したい。

よろしくお願いします
RapidExpress
常連さん
会議室デビュー日: 2007/11/11
投稿数: 42
お住まい・勤務地: おおさか
投稿日時: 2008-05-14 20:19
RowDataBoundイベントで該当データをチェックし、
データがなければFindControlしてVisibleをFalseにすればいけると思います。

コードではこんな感じで。
"該当フィールド"と"画像"のところを実際のフィールド名、コントロール名にそれぞれ差し替えてください。
コード:

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
Handles GridView1.RowDataBound

If e.Row.RowType = DataControlRowType.DataRow Then
Dim url As String = e.Row.DataItem("該当フィールド").ToString
If url.Length = 0 Then
Dim img As Image = CType(e.Row.FindControl("画像"), Image)
'データがないのでイメージURL指定
img.ImageUrl = "画像のURL"
End If
End If
End Sub



---
#消すんじゃなくて固定のURL指定でしたね。すみません。。。

_________________
//---
 あやのこうじ@RapidExpress

[ メッセージ編集済み 編集者: RapidExpress 編集日時 2008-05-14 20:28 ]
ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2008-05-15 00:26
panel の 背景じゃダメなんですか?
未記入
ベテラン
会議室デビュー日: 2008/01/15
投稿数: 65
投稿日時: 2008-05-15 10:37
RapidExpressさん、まさに求めていた回答でした。
教えて頂いた通りにnやったら実現できました。
ありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)