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

这是一个相当普遍的问题,你必须使用 scripmanger 提供的新方法所以在你的代码中而不是这个

Page.ClientScript.RegisterStartupScript

你必须使用

ScriptManager.RegisterClientScriptBlock

看看这个

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

于 2012-07-13T04:22:58.570 回答
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 回答