印刷ボタン付きのフォームがあり、クリックするとSql Server Reporting Servicesレポートを表示する別のブラウザタブが開きます。私はこの別のレポートページに2つの変数も渡しています。新しいaspxページが新しいブラウザタブに読み込まれた後にJavaScript関数を呼び出す
Protected Sub btnPrint_Click(sender As Object, e As EventArgs) Handles btnPrint.Click
Dim VID As Integer
Dim SID As Integer
Dim QueryString As String
Dim dc As New VehicleDataContext(db.ConnectionString)
Dim oReportPath = From rpt In dc.ReportLists _
Where rpt.ReportName = "Vehicle Service Record" _
Select rpt.ReportPath
Dim sURL As String = "ReportViewer.aspx"
Session.Add("ReportPath", oReportPath.First)
VID = CInt(Session("VId"))
SID = CInt(Session("SID"))
QueryString = "ReportViewer.aspx?ID=" & VID
QueryString = QueryString & "&SID=" & SID
Response.Redirect(QueryString)
レポートは問題なく表示されますが、JavaScriptには問題があります。
<script type = "text/javascript">
function SetTarget() {
document.forms[0].target = "_blank";
}
</script>
<script type = "text/javascript">
var ResetTarget = function() {
document.forms[0].target = "_self";
}
</script>
このボタンのOnClientClickイベントでは、レポートを新しいタブで開くように強制するコードを追加しました。 2番目のJavaScript関数は、アプリケーションをデフォルトの動作に戻すことです。私はこのコードを「閉じる」ボタンの下に置いていましたが、Webページの他のボタンやリンクをクリックすると、新しいブラウザタブでフォームが開いてしまうことに気付きました。
このフォームの他のページイベントが新しいウィンドウを開いたままにしないように、このボタンのコードが正常に完了したら、このResetTargetスクリプトを呼び出す方法はありますか?
ありがとうございます。
私はこれを投稿する前に他の投稿を見ましたが、私が持っていた正確な問題には触れませんでした – stuartm