Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580

    modificare stringa javascript da asp.net

    salve a tutti
    ho un sito web che gestisce gli errori di input tramite una funzione in javascript

    ebbene visto che il sito in questione ha diverse optioni, tutte settate mediante asp.net, dovrei dare un messaggio diverso per ogni errore generato
    come posso, quindi, modificare una stringa di testo javascript da asp.net?
    nella parte di codice .aspx:
    codice:
    script language = javascript>
    function controllo()
    {
     var messaggio=<%=messaggio%> ;
     if (document.testo.value='') {alert(messaggio):}
    }
    ecc... ecc....
    secondo voi se nel form_load valorizzo la variabile messaggio (vedi codice in alto) in questo pezzo di codice il javascript riesce a vederlo?
    grazie
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    secondo voi se nel form_load valorizzo la variabile messaggio (vedi codice in alto) in questo pezzo di codice il javascript riesce a vederlo?
    :master: secondo me, scritto così, no
    Pietro

  3. #3
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580
    Originariamente inviato da pietro09
    :master: secondo me, scritto così, no
    vuoi dire che c'è un modo per dare un messaggio in javascript all'utente con una variabile asp.net valorizzata da codice?

    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    io facevo così:

    evento load del client
    function window_onload()
    {
    var messaggioJS = "<%=messaggioJS%>";
    if(messaggioJS.length != 0) alert(messaggioJS);
    ****


    nella pagina server

    Protected messaggioJS$ = "" 'serve nel client

    e lo valorizzo lungo la pagina

    ***
    Catch ex As Exception
    Me.messaggioJS = Libreria.toStringaJS(ex.Message)
    ***

    la funzione toStringaJS è

    '----------------------------------------------
    'sostituisce caratteri strani in stringa per js
    '----------------------------------------------
    Public Function toStringaJS$(ByVal s$)
    s = s.Replace("\", "\\")
    s = s.Replace("""", "\""")
    s = s.Replace("'", "\'")
    s = s.Replace(vbNewLine, "\n")

    Return s

    End Function
    Pietro

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    oppure ho questa funzione

    codice:
        '----------------------------------------------------------------
        'scrive un messaggio nel client
        '----------------------------------------------------------------
        Public Sub MsgBox(ByVal This As System.Web.UI.Page, ByVal s$)
            s = s.Replace("\", "\\")
            s = s.Replace(vbNewLine, "\n")
            s = s.Replace("'", "\'")
    
            s = String.Format("var func = function(){{alert('{0}');}};var oldonload = window.onload;if (typeof window.onload != 'function') {{window.onload = func;}}else {{window.onload = function() {{oldonload();func();}}}}", s)
    
            Dim ScriptString$ = ""
            ScriptString += "<script type=""text/javascript"" >" & vbCrLf
            ScriptString += s & vbCrLf
            ScriptString += "</script>" & vbCrLf
            'This.RegisterStartupScript("clientscript", ScriptString)
            This.ClientScript.RegisterStartupScript(This.GetType, "messagebox", s, True)
    
    
    
        End Sub
    e la richiamo con:
    Dim messaggio$ = "Questa" & vbNewLine & "è '\una\' ""prova"" xx"
    libreria.MsgBox(Me, messaggio)
    Pietro

  6. #6
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580
    Originariamente inviato da pietro09
    oppure ho questa funzione

    codice:
        '----------------------------------------------------------------
        'scrive un messaggio nel client
        '----------------------------------------------------------------
        Public Sub MsgBox(ByVal This As System.Web.UI.Page, ByVal s$)
            s = s.Replace("\", "\\")
            s = s.Replace(vbNewLine, "\n")
            s = s.Replace("'", "\'")
    
            s = String.Format("var func = function(){{alert('{0}');}};var oldonload = window.onload;if (typeof window.onload != 'function') {{window.onload = func;}}else {{window.onload = function() {{oldonload();func();}}}}", s)
    
            Dim ScriptString$ = ""
            ScriptString += "<script type=""text/javascript"" >" & vbCrLf
            ScriptString += s & vbCrLf
            ScriptString += "</script>" & vbCrLf
            'This.RegisterStartupScript("clientscript", ScriptString)
            This.ClientScript.RegisterStartupScript(This.GetType, "messagebox", s, True)
    
    
    
        End Sub
    e la richiamo con:
    Dim messaggio$ = "Questa" & vbNewLine & "è '\una\' ""prova"" xx"
    libreria.MsgBox(Me, messaggio)
    incredibile, è da un po' che ci smanetto con questa tua routine
    ma che linguaggio è?
    c# non è in quanto ogni istruzione dovrebbe avere il punto e virgola
    vb non è in quanto il this non è parola chiave di visual basic

    insomma
    infatti questo this.clientscript non lo capisce che funzione è!
    cmq io programmo in vb.net
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Kahm
    incredibile, è da un po' che ci smanetto con questa tua routine
    ma che linguaggio è?
    c# non è in quanto ogni istruzione dovrebbe avere il punto e virgola
    vb non è in quanto il this non è parola chiave di visual basic

    insomma
    infatti questo this.clientscript non lo capisce che funzione è!
    cmq io programmo in vb.net
    Tutto mi sarei aspettato, tranne questa domanda

    This non è parola riservata in basic, perciò la si può usare come nome di variabile.
    Però concordo che è brutto, perciò ti propongo di sostituire la firma con :

    ByVal pagina As System.Web.UI.Page, ByVal messaggio as String

    ps. a me interessa sapere se ti funziona

    Pietro

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    a dire la verità non ho mai utilizzato questa funzione

    però forse farei così:

    variabile protetta a livello di classe

    Private messaggio As String = ""


    nella vita della pagina si modifica messaggio, tipo "record aggiornato correttamente" o messaggio di errore

    nell'ultima procedura eseguito, credo nel Page_PreRender:
    If messaggio.Length > 0 Then libreria.MsgBox(Me, messaggio)
    Pietro

  9. #9
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580
    Originariamente inviato da pietro09

    ByVal pagina As System.Web.UI.Page, ByVal messaggio as String

    ps. a me interessa sapere se ti funziona

    ciao ho messo i parametri come hai detto
    in effetti ora c'è un unico punto che devo risolvere è che nell'istruzione :
    codice:
      pagina.ClientScript.RegisterStartupScript(pagina.GetType, "messagebox", s, True)
    mi da errore su PAGINA, dice che non è un membro di system.ui.webpage!
    da cosa dipende?

    grazie
    p.s.
    io uso visual studio 2003 (dipende da questo?)
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Kahm
    ciao ho messo i parametri come hai detto
    in effetti ora c'è un unico punto che devo risolvere è che nell'istruzione :
    codice:
      pagina.ClientScript.RegisterStartupScript(pagina.GetType, "messagebox", s, True)
    mi da errore su PAGINA, dice che non è un membro di system.ui.webpage!
    da cosa dipende?

    grazie
    p.s.
    io uso visual studio 2003 (dipende da questo?)
    certo, in origine era fatto per il framework 1.1. Ho commentato la vecchia istruzione e l'ho sostituita con la nuova. Tu fai esattamente il contrario

    pagina.RegisterStartupScript("clientscript", ScriptString)

    dove, come si vede da codice, ScriptString = "<script>" & messaggio & "</script>"

    fai sapere, ciao
    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.