- - PR -
画像が存在しない場合に代替画像を表示させたい
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-11-24 12:01
お世話になります。
asp:ImageタグをDataList内に10種類配置して、 SQLとDataBindを使って画像を表示させています。 この10種類の画像は、あるかないかはデータによってまちまちです。 これをIEで見た場合、画像が無いときは小さい四角に赤い×のマークが表示されますが、 これが結構見栄えが悪くぱっと見て理解しにくいとのことなので、 画像が無い場合は別の画像を代替画像として表示したいのですが、 何か良い方法はないでしょうか。 画像の上にカーソルを持っていったときにALTテキストが表示されてしまうため、 ALTテキストでNotFoundなどとつけずに画像で表示したいと考えています。 画像が無いデータの中に強引にNotFound画像へのパスを入れ込んでしまう という強引な手もできるかと思いますが、 データが結構量が多いので、もっとスマートなやり方がありましたら ご教授いただけますでしょうか。 ご回答よろしくお願いいたします。 _________________ ◇◇◇ 社内SEを兼務する文系プログラマです。 ◇◇◇ WinXP VisualStudio2005(C#メイン) MS・SQLServer とかを使っています。 ◇◇◇ 周囲にプログラマがいないので、みなさんだけが頼りですヽ(`Д´;ノ | ||||
|
投稿日時: 2006-11-24 12:23
強引でもなんでもなくそれしか手法がありません。データベースに格納するときか表示するときかどちらかでその手段をとります。 何故強引だと思ったのでしょうか? _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-11-24 13:05
ご回答ありがとうございます。
他のところでも、TRUNCATE繰り返したりINSERT UPDATEしまくってたりと、 かなりSQLに負荷かけてるせいか、最近SQLが重くなってきたので、 もっとスマートにできないかと思いましたが、 そうですか、これしかないのですか〜 残念ですが、それではこのやり方でやってみます。 ありがとうございました。 | ||||
|
投稿日時: 2006-11-24 13:13
いや、SQL とか関係なくありませんか?
「画像がない」という判断ができるなら、表示するときにNotFound画像のパスにリプレースしたらよいだけであって。 _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-11-24 14:02
データバインドの時点でデータがない(画像ファイルのファイル名がない?)か
どうかを判定し、もしデータがないときはNotFound画像の名前を渡してあげれば いいだけですよね。 | ||||
|
投稿日時: 2006-11-24 17:16
ご回答ありがとうございます。
データベースのほうには、そのファイルがあるかどうかは無視して、 「ファイル名」だけが入っています。 しかもそのファイルの格納先が1箇所ではなく、 そのファイル名と条件分岐からファイルパスを生成するので、 その時点でないとあるかどうかの判断ができません。 というわけで、一旦ファイルパスを生成して、 それをDBに格納して、再度それをバインドしてFormViewに表示させるようにしました。 まだ動作確認までいっていませんが、 また分からないことがでてきましたら、よろしくお願いいたします。 | ||||
|
投稿日時: 2006-11-24 17:24
> データベースのほうには、そのファイルがあるかどうかは無視して、
> 「ファイル名」だけが入っています。 > しかもそのファイルの格納先が1箇所ではなく、 > そのファイル名と条件分岐からファイルパスを生成するので、 > その時点でないとあるかどうかの判断ができません。 まぁ、仕様がそうなっているのならそこのところは仕方ないとして。。。 ファイル名と関連するデータがあればファイルパスを生成することはできるんですよね? #それでもできないのだろうか? それができるのだったら、データバインドの部分で自作のメソッド呼び出すようにして、 そこでファイルパスを生成し、もしそのファイルがなければ代替用画像の文字列を 返す、といった手法はとれると思います。 | ||||
|
投稿日時: 2006-11-28 10:41
>じゃんぬさん
ご回答いつもありがとうございます。 こちらで追加質問しようと思ってましたが、スレッド立てたほうがあとから検索しやすいと思いましたので、ひとまずこちらは閉じたいと思います。 皆さんご回答ありがとうございました。 |