-------------------以下コード(省略したものですが、長々と失礼致します) Protected Sub update_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles update.Click Try Dim dt As New DataTable dt = dispin() 'ユーザ関数にて画面内容を編集してDB更新編集領域へ updateDataTable(dt) 'ユーザ関数にて編集した画面内容をDBへ更新
Dim ColumnItem As DataColumn Dim column As String = ""
Dim bFirst As Boolean = True For Each ColumnItem In dt.Columns If bFirst Then bFirst = False Else column &= "," End If column &= """" & UCase(ColumnItem.ToString) & """" Next
' ヘッダー出力 response.Write(column & vbCrLf)
Dim rowItem As DataRow For Each rowItem In dt.Rows bFirst = True column = "" For Each ColumnItem In dt.Columns
If bFirst Then bFirst = False Else column &= "," End If
Dim strTemp As String = IIf(IsDBNull(rowItem(ColumnItem.ToString)), "", rowItem(ColumnItem.ToString)) column &= """" & strTemp & """" Next
' データ出力 response.Write(column & vbCrLf) Next
' 出力終了 response.End()
Me.labelMessage.Text = "結果表示" 'A ここからを反映したいです '実際にはDBに更新した内容を画面全体に再描画します
Catch ex As Exception Me.labelMessage.Text = ex.Message End Try End Sub -------------------コード終了------------------- 補足1.Aの内容を response.endより前に記入してもダメでした。 補足2.上記ソースをa.aspxとしCSV出力処理のみを別のb.aspxに遷移 (javascriptのwidow.open)して行いました。 Aの反映は無事に行えましたが以下の問題が発生しました。 問題点 b.aspxには画面の背景色指定やラベルが貼り付けてありますが、 IE7はb.aspxの画面がCSV出力後に自動でクローズされます。 IE6はb.aspxが真っ白な状態で画面が残りました。 上記ソースで解決できない場合、補足2を採用したいのですが、下記の内容は 実現可能でしょうか。 【1】IE7に合わせる場合、IE6のb.aspxをCSV出力後に自動的にクローズする。 【2】IE7・IE6共に背景色やラベルを表示する。
分類:[ASP.NET]
初めまして。
VB2005を使用して開発をしております。
updateボタンを押したときの処理で、
@データテーブルよりCSVをダウンロード
Aラベルを編集して画面に反映(ラベル更新等による再描画)
を一括処理で行いたいです。
@までは出来ていますが、Aがどうしても出来ません。
-------------------以下コード(省略したものですが、長々と失礼致します)
Protected Sub update_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles update.Click
Try
Dim dt As New DataTable
dt = dispin() 'ユーザ関数にて画面内容を編集してDB更新編集領域へ
updateDataTable(dt) 'ユーザ関数にて編集した画面内容をDBへ更新
'------CSV出力処理------'ここより@
' contenttype 設定
response.ContentType = "application/octet-stream"
response.ContentEncoding = System.Text.Encoding.GetEncoding("shift_jis")
' ファイル名
response.AddHeader("Content-Disposition", "attachment; filename=" + "list.csv")
Dim ColumnItem As DataColumn
Dim column As String = ""
Dim bFirst As Boolean = True
For Each ColumnItem In dt.Columns
If bFirst Then
bFirst = False
Else
column &= ","
End If
column &= """" & UCase(ColumnItem.ToString) & """"
Next
' ヘッダー出力
response.Write(column & vbCrLf)
Dim rowItem As DataRow
For Each rowItem In dt.Rows
bFirst = True
column = ""
For Each ColumnItem In dt.Columns
If bFirst Then
bFirst = False
Else
column &= ","
End If
Dim strTemp As String = IIf(IsDBNull(rowItem(ColumnItem.ToString)), "", rowItem(ColumnItem.ToString))
column &= """" & strTemp & """"
Next
' データ出力
response.Write(column & vbCrLf)
Next
' 出力終了
response.End()
Me.labelMessage.Text = "結果表示" 'A ここからを反映したいです
'実際にはDBに更新した内容を画面全体に再描画します
Catch ex As Exception
Me.labelMessage.Text = ex.Message
End Try
End Sub
-------------------コード終了-------------------
補足1.Aの内容を response.endより前に記入してもダメでした。
補足2.上記ソースをa.aspxとしCSV出力処理のみを別のb.aspxに遷移
(javascriptのwidow.open)して行いました。
Aの反映は無事に行えましたが以下の問題が発生しました。
問題点
b.aspxには画面の背景色指定やラベルが貼り付けてありますが、
IE7はb.aspxの画面がCSV出力後に自動でクローズされます。
IE6はb.aspxが真っ白な状態で画面が残りました。
上記ソースで解決できない場合、補足2を採用したいのですが、下記の内容は
実現可能でしょうか。
【1】IE7に合わせる場合、IE6のb.aspxをCSV出力後に自動的にクローズする。
【2】IE7・IE6共に背景色やラベルを表示する。