C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: GridViewの画像をクリックで拡大表示するには?


(過去ログ 69 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■40014 / inTopicNo.1)  GridViewの画像をクリックで拡大表示するには?
  
□投稿者/ MAI (11回)-(2009/08/19(Wed) 15:01:53)

分類:[ASP.NET (VB)] 

環境
ASP.NET(VB2005)、SQL Serever2005、IIS 6.0、AjaxControlToolkit 1.0.20229

度々お世話になります。
DBから取得した画像をGridViewにサムネイル表示し、画像クリック時に同一画面内で
拡大表示したいのですが、方法がわかりません。

尚、画像はSQL Serverのデータとして保存されています。
jpg_title varchar(100)
jpg_type  varchar(50)
jpg_data  image

-----------------------------------------------------------
<<Default1.aspx:画像表示側>>

<asp:ImageField DataImageUrlField="item_cd"
                DataImageUrlFormatString="Default2.aspx?item_cd={0}"
                HeaderText="JPG">
    <ControlStyle Height="100px"/>
    <ItemStyle HorizontalAlign="Center" />
</asp:ImageField>

-----------------------------------------------------------
<<Default2.aspx:イメージ出力側>>

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim sbSQL As StringBuilder
    Dim ds As DataSet
    
    '(データ読込)
    
    With ds.Tables(0).Rows(0)
        Response.ContentType = .Item("jpg_type")
        Response.Flush()
        If Not IsDBNull(.Item("jpg_data")) Then
            Response.BinaryWrite(DirectCast(.Item("jpg_data"), Byte()))
        End If
        Response.End()
    End With
    
End Sub

-----------------------------------------------------------

私が調べた中で、AjaxのModalPopupExtender、又はJavaScript等で
実現できそうかな、というところまではわかっていますが、
GridView内の画像にリンクを貼る事すらできずにいます。

また、GridView内ではない単一のImageButtonから、AjaxのModalPopupExtenderを呼び出し、
画像を拡大して表示等はできています。

以下URLのような動きを想定しています。
http://serennz.sakura.ne.jp/toybox/lightbox/?ja#sample

宜しくお願い致します。

引用返信 編集キー/
■40041 / inTopicNo.2)  Re[1]: GridViewの画像をクリックで拡大表示するには?
□投稿者/ もりお (47回)-(2009/08/19(Wed) 17:18:00)
No40014 (MAI さん) に返信
> GridView内の画像にリンクを貼る事すらできずにいます。
> また、GridView内ではない単一のImageButtonから、AjaxのModalPopupExtenderを呼び出し、
> 画像を拡大して表示等はできています。

ImageField を TemplateField に変換するとテンプレートの編集から
リンクを貼ったり、いろいろできるです。
引用返信 編集キー/
■40048 / inTopicNo.3)  Re[1]: GridViewの画像をクリックで拡大表示するには?
□投稿者/ gtk2k (53回)-(2009/08/19(Wed) 18:26:13)
GridView内でModalPopupExtenderを使用するとなると、各画像ごとにModalPopupExtenderを生成し設定しなければならず
また、GridView内のコントロールのコントロールidにはプレフィックスが設定されるため、
ModalPopupExtenderのTargetIDを設定するのが非常に困難となります。

ですので、Lightboxを使用してもいいのでしたらこちらのほうがはるかに手軽にポップアップ表示を実装することができます。

画像表示する列をテンプレートフィールドに変更したら、

<ItemTemplate>
    <a rel="lightbox" href='Thumbnail.aspx?name=<%# Eval("Jpg") %>&fullscale=true'><img alt='<%# Eval("Jpg") %>' src='Thumbnail.aspx?name=<%# Eval("Jpg") %>' /></a>
</ItemTemplate>

といった感じで、テンプレート内にHTMLを書きます。
(Thumbnail.aspxは前回質問された画像を返すaspxです。サンプルではfullscale=trueでフルスケール画像を返すという設定と見てください)
あとは、Lightboxのjsファイルの読み込み部分と、Lightboxのcssファイルの読み込み部分をheadタグ内に記述すれば、
クリックするとポップアップ表示されます。

引用返信 編集キー/
■40100 / inTopicNo.4)  Re[2]: GridViewの画像をクリックで拡大表示するには?
□投稿者/ MAI (12回)-(2009/08/20(Thu) 13:22:38)
もりお さん、gtk2k さん、返信有難うございます。
都合で実際試すのが来週になるのですが、結果をご報告したいと思います。

引用返信 編集キー/
■40440 / inTopicNo.5)  Re[3]: GridViewの画像をクリックで拡大表示するには?
□投稿者/ MAI (14回)-(2009/08/26(Wed) 10:14:01)
お世話になります。
お二方のお陰で、無事実装する事ができました。

-----------------------------------------------------------
<asp:TemplateField HeaderText="JPG">
  <ItemTemplate>
    <a rel="lightbox"
       href='Default2.aspx?item_cd=<%# Eval("item_cd") %>'
       <img alt='<%# Eval("item_cd") %>'
            height="40"
            src='Default2.aspx?item_cd=<%# Eval("item_cd") %>'/>
    </a>
  </ItemTemplate>
</asp:TemplateField>
-----------------------------------------------------------

有難うございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -