- - PR -
[ASP.NET(VB)]dataGridに画像
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-10-01 00:28
いつも大変勉強になってます。
今回は、何度かレスにも出ているDataGridに画像の表示をする件でお聞きしたい事があります。DataGridに画像を表示する際は、DataGridコントロールを右クリックしてプロパティビルダでテンプレート列を加え、テンプレートの編集でイメージコントロールを配置する。というのは解っていますが、 DataGridのItemCreateやItemDataBound時でテンプレート列に配置したイメージコントロールのImageURLを直接設定することは無理でしょうか? これは少し別件になってしまうのですが、DataGridのカラムの列順を並び替えることは、同じくItemCreateやItemDataBoundで設定できませんか? 現在DataGridのプロパティビルダであらかじめ、固定のカラム(画像表示用)を設定し、ページロードした時に、後から変動するSQL文を作ったdataTableをDataSourseに設定して自動生成してます。動的にカラムを追加していったほうがスマートですか? | ||||||||
|
投稿日時: 2003-10-02 00:07
いちいちチェックしてから設定してやることになると思います。 他のセルの値を元に画像を設定するような場合は、ItemDataBoundで行う方法でよいと思います。
DataBind時に行・列などが構築されるため、DataBind後にカラム位置などを変更しても 反映されません。 | ||||||||
|
投稿日時: 2003-10-02 11:00
ぴでさんいつもありがとうございます。
ItemDataBound内で探すとなりますと、 e.Item.FindControl("img_Listmark") でいいんですか? ImageURL = "XXXXX.gif" までたどり着けなくて。すいません、教えていただいてもいいですか? | ||||||||
|
投稿日時: 2003-10-02 11:37
CType(e.Item.FindControl("img_Listmark"), System.Web.UI.WebControls.Image).ImageURL = "hoge.gif" | ||||||||
|
投稿日時: 2003-10-02 12:15
どうも、e.Item.FindControl("img_Listmark")の時点でNothingになっているようです。
img_ListmarkというIDのイメージコントロールはテンプレート列に設定してあるのですが・・・ | ||||||||
|
投稿日時: 2003-10-02 13:07
ItemDataBoundイベントはヘッダ部分等でも発生するため、
その時はNothingになっていると思います。 Nothingかどうか判定してもできると思いますが、よくあるサンプルでは ItemTypeを使って判定しています。 詳しくはListItemType列挙体のリファレンスを見てください。
| ||||||||
|
投稿日時: 2003-10-02 15:17
ありがとうございます。
e.Item.ItemType = ListItemType.Item だと、交互に表示されましたが、 e.Item.ItemType = ListItemType.AlternatingItem も条件に加えることでできました。 後は、bind前にカラムを並び替えるだけで解決します。 |
1