2012-07-12 93 views
0

.NET問題vb.net代碼隱藏不調用JavaScript:UpdatePanel的

我有一個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

function changeUrl(){ 

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

    } 

此代碼工作得很好,直到我不得不使用wrapp我的網頁內容asp:ScriptManager and asp:UpdatePanel

這裏打開新標籤js的功能是什麼我的代碼如下像現在

<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 任何人都可以告訴我請問我的問題在哪裏?

回答

0

這是你有那麼在你的代碼中使用由scripmanger 提供了新的方法,而不是這個

Page.ClientScript.RegisterStartupScript 
一個相當普遍的問題

你必須使用

ScriptManager.RegisterClientScriptBlock 

看一看這個

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

+0

它的伎倆,但我怎麼能pastback原來的頁面,它現在做它生成圖表的PDF頁面,然後它會持續另外一個,我覺得如果我可以在這一個刷新這將有所幫助,謝謝 – 2012-07-13 12:41:59

+0

對不起,我coudnt得到你的問題。 – 2012-07-16 08:54:40

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> 

參見: Run javascript function after Postback