2016-05-11 6 views
-1

印刷ボタン付きのフォームがあり、クリックすると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スクリプトを呼び出す方法はありますか?

ありがとうございます。

+0

私はこれを投稿する前に他の投稿を見ましたが、私が持っていた正確な問題には触れませんでした – stuartm

答えて

0
function SetTarget() { 

    document.forms[0].target = "_blank"; 
    setTimeout(function(){document.forms[0].target = "_self";},300); 
} 

これは問題ありませんか?

+0

正確に私が必要としたもの。ありがとう。 – stuartm

+0

そうであれば正しいものとしてマークしてください。 –

関連する問題