• ベストアンサー

データグリッドでの画像表示

データベースにURLをStringとして保存してる のですが、データグリッドで読み込んだ時に 画像を表示するようにしたいのですが、どうしたらよいでしょうか? ご存知の方がいらっしゃりましたらアドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

IFRAMEを動的に追加してあげたらよいと思います。 Page_Loadを利用し、派生させる方法を書いておきます。 [ほげ.ASPX] のbodyタブ内に以下を追加してください。 <asp:datagrid id="DataGrid1" runat="server" Width="100%"></asp:datagrid> [ほげ.ASPX.vb] の中に、以下のコードを仕込んでください。 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load   ' ページを初期化する ユーザー コードをここに挿入します。   Dim l_dtb As DataTable = データテーブル()   Me.DataGrid1.DataSource = l_dtb   Me.DataGrid1.DataBind()   Dim l_dgアイテム As DataGridItem   Dim l_tbセル_URL As TableCell   Dim l_tbセル_FRM As TableCell   Dim l_ctlFRM As UI.Control   For Each l_dgアイテム In Me.DataGrid1.Items     '先頭のセルを取得     l_tbセル_URL = l_dgアイテム.Cells(0)     '新フレームを派生     l_ctlFRM = 新_IFRAME(l_tbセル_URL.Text)     '新たなセルを派生     l_tbセル_FRM = New TableCell()     'セルにフレームを追加     l_tbセル_FRM.Controls.Add(l_ctlFRM)     '新たなセルを追加     l_dgアイテム.Cells.Add(l_tbセル_FRM)   Next End Sub Private Function 新_IFRAME(ByVal p_strURL As String) As System.Web.UI.HtmlControls.HtmlGenericControl   Dim l_objFrame As New System.Web.UI.HtmlControls.HtmlGenericControl("IFRAME")   l_objFrame.Attributes("frameborder") = "0"   l_objFrame.Attributes("width") = "100%"   l_objFrame.Attributes("height") = "100%"   l_objFrame.Attributes("scrolling") = "AUTO"   l_objFrame.Attributes("src") = p_strURL   Return l_objFrame End Function Private Function データテーブル() As DataTable   Dim l_dtbデータテーブル As New DataTable()   l_dtbデータテーブル.Columns.Add("URL", System.Type.GetType("System.String"))   l_dtbデータテーブル.Rows.Add(New String() {"http://okwave.jp"})   l_dtbデータテーブル.Rows.Add(New String() {"http://okwave.jp/kotaeru.php3?q=2165424"})   Return l_dtbデータテーブル End Function

ajaxy
質問者

お礼

非常に丁寧なアドバイスありがとうございます。とても参考になりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • データグリッドの使い方

    お聞きしたいことがあるのですが、例えばカスタマーIDが入ったデータベースがあるとしまして、カスタマーごとに違ったページを表示したいのですが、その場合 http://example.com/customerpage?customerID= + カスタマーID みたいな感じでデータグリッド内で表示させたいのですが、どうしたらよいでしょうか? 普通にカスタマーIDを表示させるのは問題ないのですが、それに http://example.com/customerpage?customerID= を加えて表示させる やり方がわからないんです。 ご存知の方がいらっしゃりましたらアドバイスお願いいたします。

  • VBのデータグリッドの表示が消えてしまいました。何故でしょうか?

      cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\生徒管理\生徒.mdb;" cn.Open mySQL= "SELECT * FROM 2学年 " _ & "WHERE (((所属)='" & frmPW.cmb生徒.Text & "'))" Set rs= New ADODB.Recordset rs.Open mySQL, cn, adOpenStatic Set DataGrid1.DataSource = rs と記述していて、それまでデータグリッドにデータが上手く表示されていたのに、 接続先のmdbファイルにパスワードを設定して、ConnectionStringの設定部分を   cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\生徒管理\生徒.mdb;" & _ "Jet OLEDB:Database Password=seito2;" に変更したところ、データグリッドにデータが表示されなくなりました。 データベースへの接続は上手くいっているようなのですが、何故データグリッドに データが表示されなくなったのでしょうか。 よろしくお願いします。

  • ,netのデータグリッドの使い方教えてください!!

    VB.netで、ACCESSのデータベースと接続して、ブラウザ上に表示するシステムを作成しているのですが、その中で「データグリッド」(以下DG)なるコントロールを使用しているのですが、確かにDBの情報をそのままDGに表示はしてくれるのですが・・。 1、任意の値をDG上に入力することはできないのでしょうか・・?(例えばセルを指定して・・とか) 2、データベースからDG上に書き込む段階で、表示内容を変える事は可能でしょうか?(例えば、データベースでは、1,2,3・・と管理していますが、画面表示では、1=売上前 2=売上中 3=売上後・・・と表示したいです。) 3、上記の作業がDG上では不可能な際、それに変わるコントロールは存在するのでしょうか?(データテーブルやデータリスト等・・・) 初心者なので勉強不足なのですが、どなたかご教授ください。

  • VBのデータグリッドが表示されない!!!

    こんにちはtmgmです。 データグリッドが表示されません。 状況としては 1.プログラムは正常に動いています。(「接続に成功しました」メッセージ、「レコード取得に成功しました」メッセージ、ともに表示されます。) 2.しかしデータグリッドには何一つ表示されません。(ツールボックスから貼り付けたままの状態です) 3.参照設定はMicrosoft ActiveX Data Objects 2.5 Library、コンポーネントはMicrosoft DataGrid Control6.0(SP5)(OLEDB)です。 どなたかお分かりになる方いらっしゃいますでしょうか?非常に困っています。 ご返答よろしくお願いします。 ------------------------------------------------ Dim CONN As ADODB.Connection 'レコードセットの宣言 Dim RECO As ADODB.Recordset '接続の宣言 Set CONN = New ADODB.Connection '接続のプロパティ With CONN .ConnectionString=     "provider=Microsoft.jet.oledb.4.0;" _ & "data source=C:\TESTMDB.mdb" .Open End With MsgBox "データベース接続に成功しました"   'レコードセットのプロパティ Set RECO = New Recordset With RECO .ActiveConnection = CONN .Source = "SELECT ~(省略)" .CursorLocation = adUseClient .CursorType = adOpenStatic .LockType = adLockOptimistic .Properties("IRowsetIdentity") = True .Open End With   'レコードセットをデータグリッドに連結 Set D_GRID.DataSource = RECO MsgBox "レコードセット取得に成功しました ------------------------------------------------

  • VB データグリッドの仕様・・・。(初心者)

    VBのデータグリッドにACCESSのデータベースを取り込み、検索するシステムを作っています。 データベースには「売上ID・車種・売上額」を用意しており、データグリッドには項目として、「車種・売上額・[選択ボタン]」を設定しています。[選択ボタン]はグリッドのプロパティの"ボタン列"を使用しています。データをデータグリッドに取り込む際、[選択ボタン]のプロパティの"テキストフィールド"には"売上ID"を設定しているのですが、(表示したくないので)プロパティの"テキスト書式文字列"に"詳細"と打ち込み、画面上には出ないようにしてます。しかし、この状態でプログラムしていくと、一番肝心な売上IDの情報をデータグリッドから取ろうとすると、"詳細"のテキストしか取得できません!選択ボタンに設定した売上IDを取得するにはどんなロジック(プロパティ)から取得できるのでしょうか?

  • 月毎の集計値を同じデータグリッドに表示させるには?

    いつもお世話になっています。 VB.NET2003+ACCESS2000の環境です。 例として、日付、商品名、売上個数 計3項目のデータベースがあるとします。 これらを1月度計、2月度計、・・・・・年間合計という風に、商品別に データグリッドにデータを並べられないかと模索しています。 データアダプタに読み込ませる場合、where句に日付を指定するとすべてに その期間が反映されるため、「ある月」のデータしか取れずに年間分は指定できません。 データアダプタをそれぞれの月でとれば各月の結果はそれぞれ格納できますが、 それを一つのデータグリッドに表示させることは普通出来ませんよね。 TableMappingプロパティイでそれぞれのテーブルの名前を変えて、同じ データセットに読み込ませれば良いのではと考えたのですが、「ある月」 しか表示できません。 1月~12月および合計を表示さえるのはこの考え方ではダメなのでしょうか?  普通はどうしておられるのでしょうか?   無知をさらけ出す質問で恐縮ですがヒントを頂ければ幸いです。 よろしくお願いいたします。

  • データグリッドでデータごとにインデックス番号を付ける方法。

    データグリッドでデータを一個表示させるごとに最初の項目にインデックス番号(要するに1、2、3、とデータごとに表示させる)を付ける方法がわかりません。アイテムテンプレートでデータバウンドで{0}みたいに番号を 付けてみたのですが、ページが変わるごとに0に戻ってしまいます。 どなかた解決法をご存知の方がいらっしゃりましたらアドバイス お願いいたします。

  • SQLとデータグリッドの関係

    ご質問させてください。 アプリケーションを作成しています。 (1)大量ファイルを読み込み、ファイル情報をSQL(SQLite)に追加します。 その後データグリッドで表示をします。 (2)データグリッドのクリックした行をドラッグで移動し 並び替えを行いました。 アプリケーションを再起動しても並び替えを維持して表示させるために (2)の次点でSQLにデータグリッドのデータを先頭から末尾まで全て 再入力しました。 ひとまず、上記の方法で正常に動作しますが 大量のファイルになると、上記の方法ではドラッグ時に 固まったようになってしまいました。(処理の時間がかかる) この処理速度を改善する良い処理方法はあるんでしょうか? 宜しくお願いします!

  • 画像の投稿→表示についてです

    こんばんは。今PHP勉強中の者です。 今画像投稿画面を作成しています。 画像投稿の遷移は 1、フォームに様々なテキストなどで文言等も含めて ローカルの画像を入力、参照        ↓ 2、確認画面で入力項目、投稿画像の表示、確認        ↓ 3、2の項目でいいなら投稿(データベースへデータを格納)し、 投稿ありがとうございました。等の文言表示。 といった行程です。 1~2の遷移はいいのですが、2移行が上手くできていません。 画像を何処から読み出しして参照として表示させたらいいのか よくわかりません。 $_FILESで配列を作成できていても、 その配列にある[tmp_name]という箇所のパスっぽい所を見ても 一時フォルダに画像が入ってる感じがしません。 (一時保存場所はデフォルトのままなでno_valueです。) これの確認画面での表示は一時保存フォルダ以外に 何処か同じサーバ内にフォルダ作って移動させて、 表示させて後に消すといったことをしたらいいのでしょうか? それともそのままアップする側のローカルの画像を 表示させるようにしたらいいのでしょうか? また、画像はFTP接続して別のサーバに画像をアップする感じです。 画像の読み出し自体はhttp://hogehoge.com/hoge1/hoge2.jpg のような感じで読み出しますので、データベースにその パスも入れたいのですが、3の行程でインサート文のSQLを 発行する前に、他の文言等と一緒に このパスも拾わなければならない感じです。 FTP接続などは終了しているのですが、これも何処で 別サーバへアップしてURLを拾ってあと、 データベースへURLのインサート処理していいのかよくわかりません。 なんか乱雑な文章になりましたが、解決したいので、 ご教示いただけないでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • 画像URL表示方法。

    今使っているPC→OSがwindows8.1、ブラウザはInternet Explorer11 素材サイトの画像を借りてサイトを作りたいのですが 素材サイトの画像を「名前を付けて画像を保存(S)」→「PCのピクチャに保存」 →保存した画像の上で「プロパティ(R)」を表示しても画像URLが表示されません。 ※保存前では「プロパティ(R)」で画像URLは表示されます。 (素材サイト上のプロパティの画像URLを貼ると直リンになりますよね?) やり方が間違っているのでしょうか? 教えてください。