- PR -

別のウィンドウにPDFを表示したい

1
投稿者投稿内容
taima
会議室デビュー日: 2005/06/19
投稿数: 6
投稿日時: 2006-08-08 09:41
Sqlserverにpdfを保存していてボタンを押すとtextboxに入れたIDを参照して目的のpdfを
Webページに表示するようにしているのですが、別の画面に表示するにはどうしたらいいのでしょうか。
ちなみにボタンのコードは

Dim row As GridViewRow = GridView1.SelectedRow
Dim connection As New SqlConnection("Data Source=*******")
Dim cmd As New SqlCommand
Dim reader As SqlDataReader
cmd.CommandText = "SELECT * from XX where x=" + row.Cells(2).Text
cmd.CommandType = CommandType.Text
cmd.Connection = connection
connection.Open()
reader = cmd.ExecuteReader()
If reader.Read() Then
Response.ContentType = CType(reader.Item(5), String)
Response.BinaryWrite(CType(reader.Item(4), Byte()))
End If
connection.Close()
のようにしています。
Katze
ベテラン
会議室デビュー日: 2005/11/01
投稿数: 74
お住まい・勤務地: 1台でも せんだい
投稿日時: 2006-08-08 10:13
別の画面を別のウィンドウと単純に考えて

1.ボタンを押したときにセッションにtextboxの値を設定
2.RegisterStartupScript等でJavaScriptのwindow.openを出力、別画面を開く
3.その別画面側でセッションからIDを取得し掲載されたコードでpdfの出力

上記のような感じでできるのではないでしょうか?

# 掲載されたコードが正常に動作することが前提ですが...


[ メッセージ編集済み 編集者: Katze 編集日時 2006-08-08 10:18 ]
かめたろ
ぬし
会議室デビュー日: 2003/03/20
投稿数: 255
投稿日時: 2006-08-08 10:36
引用:

別の画面に表示するにはどうしたらいいのでしょうか。



子Webフォームを作って、そっちでPDFを表示させてはどうでしょうか。

グリッドにハイパーリンクの列を設けといて、そのリンクの参照URLには子WebフォームへのURLとクエリストリングにrow.Cells(2).Textの値を仕込んでおき、子Webフォームではクエリストリングの値でDBを検索しBinaryWriteする。

もっといいやり方があるような・・・
taima
会議室デビュー日: 2005/06/19
投稿数: 6
投稿日時: 2006-08-08 13:17
早速のレスありがとうございます。
まず最初に訂正しなければならないのは、textboxに入力した値を元にと書きながら、
コードは実際はGridViewの選択ボタンに貼り付けたコードでGridViewから値を
もらってきて検索し表示するコードになっていました。
JavaScriptは使ったことが無かったものですから考えていませんでした。RegisterStartupScriptというヒントはいただいたのですが使用法が良くわからな
かったので色々調べてみたところSesion情報を保存しておいてResponse.WriteでJavaScriptを埋め込んで window.open で 新たにwindowをopenしSesion情報を読み出して出来るようになりました。ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)