- - PR -
ASP.NET でHyperLinkColumnで値がない場合TEXTを表示しないようにするには
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-12-01 09:41
いつもお世話になっています。
全く初心者なので初歩的な話かもしれませんが・・・。 今以下のコードでフィールド『ファイル名2』の値を『str.jpg』にリンクさせよう としています。この時『ファイル名2』がない場合(Nothing)があり、そのときは 『str.jpg』を表示しないようにしたいのですが、何か方法はありますでしょうか? <asp:HyperLinkColumn HeaderText="ファイル2" Text="<img src='img/str.jpg' border='0'>" DataNavigateUrlField="ファイル名2" DataNavigateUrlFormatString="A/{0}" Target="_blank"> <HeaderStyle horizontalalign="Center" width="2em"></HeaderStyle> <ItemStyle horizontalalign="Right"></ItemStyle> </asp:HyperLinkColumn> [ メッセージ編集済み 編集者: tkinu 編集日時 2005-12-01 10:44 ] | ||||
|
投稿日時: 2005-12-01 17:23
こんばんは。
ItemDataBoundイベントを使ってみてはいかがでしょうか? 例えば以下のように・・・
| ||||
|
投稿日時: 2005-12-01 19:20
かめたろさん、ありがとうございます。
もう少し教えてください。 いただいたコードのままで行くと hl = CType(e.Item.Cells.Item(0).Controls(0), HyperLink) がエラーになります。 hiがHyperLinkオブジェクトだからなのだと思うのですが、これを HyperLinkColumnに変えることはできるのでしょうか? | ||||
|
投稿日時: 2005-12-02 09:49
おはようございます。
まず、このイベントはグリッドのヘッダやフッタのバインド後にも発生しますので。 デバッグでe.Item.ItemIndexの値をみてみてください。 -1とか入ってきてませんか?-1の場合、スルーするようにするといいでしょう。 もう1点、こっちは大丈夫だと思いますが一応・・・ HyperLinkColumnはDataGrid上で何列目でしょうか? e.Item.Cells.Item(IDX).Controls(0) IDXに列のインデックスを入れてください。1列目だったらゼロでいいんですが。 HyperLinkColumnはあくまで列の定義のはずです。 データバインドするとセルの中にHyperLinkコントロールができています。 だから、HyperLinkColumnにキャストするというのはちと違うかと・・・。 デバッグでCellの中身を見てみるとより理解ができると思います。 | ||||
|
投稿日時: 2005-12-08 10:51
かめたろさん
遅くなってすいません。 ばっちり動きました!!すばらしいです。 ありがとうございます。 |
1