0

.netの質問

私は持っていasp:LinkButtonます、クリックするとコードビハインドにヒットし、セッションを作成し、javascript関数を呼び出してPDFドキュメントで新しいタブを開きます

これはボタンです:

 <asp:LinkButton runat="server" CssClass="lnkBtn" ID="btnViewPDF" >
 <img alt="" src="External_Files/images/view_pdf_icon.png" />
  <span>View PDF</span></asp:LinkButton>

背後にあるコード:

      Protected Sub btnViewPDF_Click(sender As Object, e As System.EventArgs)
       Handles btnViewPDF.Click

    Session("mina") = hfChartImg.Value
    Page.ClientScript.RegisterStartupScript(Me.GetType(), "_viewPDF", 
       "changeUrl();",     True)
     End Sub

これは、PDFで新しいタブを開くjs関数です

  function changeUrl(){

      var url = 'CIP_frmCIPEventExplorePdf.aspx?ViewPDF=1&intCIPEventID=' + 
      $('#intCIPEventID').val();
       parent.showNewTab(url, 'CIP Chart - PDF', 'CIP');

     }

このコードは、ページのコンテンツをラップするために使用する必要があるまでは正常に機能しました asp:ScriptManager and asp:UpdatePanel

これが私のコードが今どのように見えるかです

  <body class="frame_content">
          <form id="CIP_frmCIPEventExplore" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server"
              EnablePartialRendering="true"></asp:ScriptManager>
       <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <div class="dataview_title" >
          ..............................
            ..........................

       </asp:Panel>
        </ContentTemplate>
            </asp:UpdatePanel>  
       </form>

       </body>

sessionコードがjavascript関数を呼び出さなくなっ た行にブレークポイントを設定すると、その行にヒットし、問題END SUB がどこにあるかを誰かに教えてもらえますか?

4

2 に答える 2

0

これを試してください..使用が機能しない同様の問題が発生しましたRegisterStartupScript()。以下は私のために働いた:

<form id="CIP_frmCIPEventExplore" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" />
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>   
           ...
        </ContentTemplate>
    </asp:UpdatePanel>
</form>
<script type="text/javascript">
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_endRequest(function (s, e) {
        changeUrl();
    });
</script>

参照: ポストバック後にjavascript関数を実行する

于 2012-07-12T21:30:18.237 に答える
0

これはかなり一般的な問題であり、scripmangerによって提供される新しいメソッドを使用する必要があります。したがって、コードではこれの代わりに

Page.ClientScript.RegisterStartupScript

あなたが使用する必要があります

ScriptManager.RegisterClientScriptBlock

これを見てください

http://msdn.microsoft.com/en-us/library/bb350750.aspx

于 2012-07-13T04:22:58.570 に答える