Visualizzazione dei risultati da 1 a 8 su 8

Discussione: su User Control

  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    su User Control

    Ho un User Control. Nell'evento load dell'UC creo blocchi di codice javascript con l'istruzione RegisterStartupScript.


    Adesso, nella pagina ospite, visualizzo l'UC all'inizio. Nel postback lo rento invisibile con UC.visible = false.
    Il problema nasce dal fatto che i blocchi script dell'UC vengono comunque generati, perchè l'evento load dell'UC si verifica sempre prima dell'evento click di un pulsante di submit.
    Ho provato pure ad eliminare l'UC dal suo contenitore, ma senza risultato.

    Ho risolto creando dinamicamente l'UC, ma mi piacerebbe pure risolvere il mio problema.
    Pietro

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887


    credo che una soluzione sia non generare il codice javascript nel Page_Load dell'uc...

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da djciko


    credo che una soluzione sia non generare il codice javascript nel Page_Load dell'uc...
    Ne convengo, ma dove potrei generarlo?
    Mi spiego:

    1) all'inizio faccio vedere l'UC

    2) nel postback, nell'evento che ha generato il postback nascondo l'UC o lo tolgo addirittura dal suo contenitore.

    3)nel primo caso ci deve essere il javascript, nel secondo no
    Pietro

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Forse ho capito male, ma mi viene in mente questo...

    codice:
    If Me.Visible Then
       'aggiungi il codice javascript
    End If

    Hey hey, my my Rock and roll can never die!

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da zampa28
    Forse ho capito male, ma mi viene in mente questo...

    codice:
    If Me.Visible Then
       'aggiungi il codice javascript
    End If
    Questo l'ho pensato pure io ma, ahimè, non funziona

    Infatti, io metto l'attributo dell'UC invisibile, nell'evento click di un pulsante di submit. Ma allora, l'evento load dell'UC è già partito ed ha creato lo javascript.

    Ripeto, inserendo l'UC da codice si risolve, ma mi piacerebbe risolvere l'altro caso. In pratica vorrei:

    se UC è invisibile o se lo scarico dal suo contenitore, annulla ogni possibile azione e traccia dell'UC.

    Pietro

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Credo di avere trovato la soluzione.
    L'evento PreRender dell'UC non viene lanciato se il controllo è invisibile, perciò la soluzione è ovvia, i codici javascrip si mettono in quell'evento e non nel load.

    Ciao a tutti (i pochi rimasti)
    Pietro

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Tanto per curiosità, forse sto per dire una cavolata, ma quando registri il codice JS la prima volta, per una pagina non rimane 'registrato' anche per i successivi PBs?

    Cioe', in altre parole...perchè si dice "registrare" ?

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da djciko
    Tanto per curiosità, forse sto per dire una cavolata, ma quando registri il codice JS la prima volta, per una pagina non rimane 'registrato' anche per i successivi PBs?

    Cioe', in altre parole...perchè si dice "registrare" ?
    La scrittura di codice javascript tramite Page.RegisterClientScriptBlock non viene mantenuta tra un postback e l'altro, deve essere sempre ricreata.
    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.