Problemi con "javascript alert" nella page_load per verifica dati inpu...

mercoledì 11 novembre 2009 - 00.01

cosmopsis Profilo | Junior Member

Voglio mostrare un msgbox stile vb per intenderci. Trovo questa funzione:

Private Sub showClientMessageBox(ByVal message As String)
If Not (ClientScript.IsStartupScriptRegistered("doMessage")) Then
Dim buffScriptString As String
buffScriptString = "<script language=""javascript"">" & vbCrLf _
& "<!-- " & vbCrLf _
& "alert(""" & message & """); " & vbCrLf _
& "--> " & vbCrLf _
& "</script>"

ClientScript.RegisterStartupScript(Me.GetType(), "doMessage", buffScriptString)
End If
End Sub

Tutto funziona correttamente.
Nel Sub Page_Load della webForm la verifico. Il fatto è che al primo caricamento della webform il messaggio appare: se ricarico la pagina (mettiamo per un button premuto) non appare nessun messaggio! Ho verificato in debug: si passa di lì. Per semplicità ho messo un richiamo brutale nella load senza controllo isPostback per intenderci. Nulla. Sto impazzendo -- soprattutto perché ho la sensazione che sia un emerita cavolata il mio errore. Il messaggio serve ad indicare eventuali errori di input. Qualcuno può indicarmi dove sbaglio?

FrancescoGuadagno Profilo | Senior Member

>Voglio mostrare un msgbox stile vb per intenderci. Trovo questa
>funzione:
>
>Private Sub showClientMessageBox(ByVal message As String)
>If Not (ClientScript.IsStartupScriptRegistered("doMessage"))
>Then
> Dim buffScriptString As String
>buffScriptString = "<script language=""javascript"">" &
>vbCrLf _
> & "<!-- " & vbCrLf _
>& "alert(""" & message & """); " & vbCrLf _
> & "--> " & vbCrLf _
> & "</script>"
>
>ClientScript.RegisterStartupScript(Me.GetType(), "doMessage",
>buffScriptString)
> End If
>End Sub
>
>Tutto funziona correttamente.
>Nel Sub Page_Load della webForm la verifico. Il fatto è che al
>primo caricamento della webform il messaggio appare: se ricarico
>la pagina (mettiamo per un button premuto) non appare nessun
>messaggio! Ho verificato in debug: si passa di lì. Per semplicità
>ho messo un richiamo brutale nella load senza controllo isPostback
>per intenderci. Nulla. Sto impazzendo -- soprattutto perché ho
>la sensazione che sia un emerita cavolata il mio errore. Il messaggio
>serve ad indicare eventuali errori di input. Qualcuno può indicarmi
>dove sbaglio?
>

Tramite quella funzione tu stai inserendo il tuo script js sull'html della pagina (mediante il metodo ClientScript.IsStartupScriptRegistered()) ma dopo il primo post questo codice html (js) viene perso. Devi reinserirlo ad ogni postback se vuoi che venga mantenuto.

Se vuoi, puoi fare una prova molto semplice, ovvero guardare il codice html di ogni post in IE. La prima volta ritroverai il js. al click di un button o in generale dopo qualsiasi postback il js scompare.

cosmopsis Profilo | Junior Member

Grazie per la risposta.
No. Putroppo il js è lì sia alla prima che alle successive volte. Ho specificato di averlo messo brutalmente nel load...
Mi chiedo quale possa essere il mio errore...
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5