2013-12-13 84 views
0

我有此腳本來運行一個警告窗口:彈出警告窗口問題

<asp:Content ID="RegisterMain" ContentPlaceHolderID="MainContent" runat="server"> 
<script language="javascript" type="text/javascript"> 
    function popup(msg) { 
     window.alert(msg); 
     window.window.focus(); 
    } 
    </script> 
......... 
</asp:Content> 

而且我也有代碼,這個過程背後運行此腳本:

Public Sub PostError(inheretedPage As System.Web.UI.Page, sender As Object, msg As String) 
     Dim cstype As Type = inheretedPage.GetType() 
     Dim innerMess As String = msg 
     Dim url As String = HttpContext.Current.Request.Url.AbsoluteUri 
     Dim script As String = "popup('" & innerMess & "')" 
     If Not Page.ClientScript.IsStartupScriptRegistered(inheretedPage.GetType(), "alertscript") Then 
      Page.ClientScript.RegisterStartupScript(cstype, "alertscript", script, True) 
     End If 
    End Sub 

一切順利當我直接從後面的代碼運行以下指令,並在它啓動任何東西之前:

PostError(Me, sender, "Your e-mail address is not good") 

該程序去進一步進入一個類爲了使數據庫和服務器的過程。
如果班級內出現錯誤,我使用此行返回顯示錯誤。

Catch ex As OleDbException 
       Dim SHandler As New Web.SQLServer.DBHandler 
       ErrorAnswer = SHandler.GetError(ServerConn.Provider, ex, Nothing) 
       retVal = False 
End Try 
      Return retVal & "|" & faultReason & "|" & ErrorAnswer 

在這種情況下,我收回錯誤消息到後面的代碼,如從一個級返回的變量,並執行下面的指令處理它此過程的內部:

ErrorAnswer = "Server is open, and base is closed" 
         PostError(Me, sender, ErrorAnswer) 

正如我們所看到的,這兩種情況下的指令都是相同的,首先是代碼執行方式。
現在我的問題是,直接指令從腳本傳遞並執行得很好,但間接(來自類)沒有執行腳本,即使她具有與直接相同的所有變量。
在第二種情況下不調用腳本。

aditional的INFORMATIONS
在第一種情況PostError有程序:
cstype = {Name = "pages_account_register_aspx" FullName = ASP.pages_account_register_aspx"}<br/> popup('Your e-mail is not right')

而在第二種情況下,相同porcedure具有:
cstype = {Name = "pages_account_register_aspx" FullName = ASP.pages_account_register_aspx"}<br/> script = "popup('Login timeout expired')"

+0

你在瀏覽器中檢查了javascript錯誤控制檯嗎? –

+0

是的,我沒有錯誤 –

回答

1

我終於找到這個問題......腳本不接受vbCrLf這個命令沒有執行從腳本中...謝謝alll

+1

棒極了!做得好 :) – equisde