2017-11-15 12 views
0

このページはcshtmlにあります。 このページでは、レポートかどうかを検証の上、 "formImpressao"(ASP.NETページ)aspネットページからjs extern関数を呼び出す方法

CSHTMLページ

@using Web.Mvc.Helpers 
@{ 
    string msgSucesso = "test";  
} 
<div id="divSucess"> 
<h5 style="background-image: url('themes/base/images/48/ico_ok.gif'); text-align:center; background-repeat: no-repeat; font-family: Verdana; color: #1d7100; font-size:'72'">@msgSucesso</h5> 
</div> 


<div id="HiddenFormTarget" style="display:none;"> 
    <form id="formImpressao" method="post" target="frmPrint" action="/VisualizarRelatorios/ImprimirRelatorio.aspx"></form> 
</div> 
<iframe id="frmPrint" name="frmPrint" width="0" height="0" runat="server"> 
</iframe> 


<script language="javascript" type="text/javascript"> 
    $("#formImpressao").submit(); 
</script> 

ASPXページ(ImprimirRelatorio.aspx)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ImprimirRelatorio.aspx.cs" Inherits="Views.Views.ImprimirRelatorios.ImprimirRelatorio" %> 

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
    Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %> 

<%--<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">--%> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script src="../Scripts/jquery-1.5.1.js" type="text/javascript"></script> 
    <script src="../Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>  
</head> 
<body style="margin: 0px"> 

    <form id="form1" runat="server" style=" width:100%; height:100%;" > 
    <div style=" width:100%; height:100%; overflow-y:hidden; overflow-x:hidden" > 
     <asp:ScriptManager ID="ScriptManager1" runat="server"> 
     </asp:ScriptManager> 
     <rsweb:ReportViewer ID="rptRelatorio" runat="server" Width="100%" 
      Height="100%" ProcessingMode="Remote" > 
     </rsweb:ReportViewer> 
    </div> 
    </form> 
</body> 
</html> 
<script language="javascript"> 

    function Imprimir() 
    { 
     var viewer = $find("rptRelatorio"); 
     var isLoading = viewer.get_isLoading(); 
     var impresso = false; 

     if (!isLoading) { 
      $("input[type='image']:not(:disabled)[title*='Print']").click(); 
      impresso = true; 
     } 

     if (!impresso) { 
      setTimeout(Imprimir, 1000); 
     }else { 
      $("#divSucess").style.backgroundColor = "red"; 
     } 

    } 

    $(document).ready(function() { 
     setTimeout(Imprimir, 4000); 
    }); 

</script> 

Imprimir機能を実行中に提出Reporting Services内で印刷されました。

印刷する場合は、divSuccessという部門に割り当てます。属性はstyle.backgroundColor = "red"です。

問題は、aspフォームにdivSuccessが表示されず、cshtmlページにaspフォームが表示されないという問題です。

divSuccess」のページのDOMを再生するには、aspページ内でjs関数を呼び出すにはどうすればよいですか?

他の方法がありますか?

2ページは話しません。

答えて

0

ImprimirRelatorio.aspxページの内容を取得するAJAXリクエストを送信することができます。成功ハンドラでは、ImprimirRelatorio.aspxページのbodyタグの内部HTMLを取得するための応答を解析し、結果をコンテナ(なし)に設定し、Imprimir関数を呼び出します(詳細はAJAX documentationを参照してください)。関数Imprimirは、呼び出すページで成功イベントハンドラを定義する必要があることに注意してください。

関連する問題