2013-12-13 3 views
0

У меня есть этот скрипт для запуска окна предупреждения:PopUp Бдительных проблем Window

<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) 

Как мы видим, инструкция в обоих случаях одинакова, вначале и в порядке выполнения кода.
Теперь моя проблема заключается в том, что команда Direct переходит из сценария и выполняется просто отлично, но косвенная (которая поступает из класса) не выполняет скрипт, даже если у нее есть все переменные точно так же, как и прямые.
Сценарий не вызывается во втором случае.

фильме 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