• ベストアンサー

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

データベースに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