Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857

    Eseguire codice in pagina aspx da codebehind di UC in una modalpopup extender

    Come avvisato :-) ,
    ho uno UserControl visualizzato all'interno di una Ajaxtoolkit:modalpopupExtender.
    Ho necessità di eseguire codice della pagina che contiene il tutto dal codebehind dello UC... si può fare?

    Lo UC inserisce dei dati in db, dati che sono visualizzati nella pagina che ospita il tutto: una volta inseriti i dati lo UC chiude via codice la modalpopup ma i dati nella pagina restano quelli che erano stati caricati prima dell'apertura della modalpopup e non si aggiornano, avrei quindi necessità di chiamare una funzione della pagina che faccia il refresh dei dati.

    Dallo UC riesco a puntare i controlli della pagina ospite (me.parent.parent.parent.findcontrol("nomecontroll o") ) ma non saprei come fargli eseguire del codice della pagina ospite... ammesso che si possa.

    Grazzzie
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  2. #2
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    Per spiegarlo meglio faccio un esempio:
    pagina con updatepanel che contiene una gridview;
    cliccando su una riga del gridview apro la modalpopup con uno UC all'interno;
    lo UC modifica i dati mostrati nella gridview e chiude la modalpopup;
    alla chiusura ho necessità di ribindare la gridview
    (il rebind lo devo fare solo quando ho modificato i dati, non ogni volta che si chiude la modalpopup, quindi lo devo lanciare dal codice dello UC... credo)
    Ultima modifica di supermac; 29-10-2020 a 19:24
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  3. #3
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    "SI... PUO' ....FAREE!!!!" (cit.)
    Scoprire che puoi mettere un evento Myevent public nello UC, fare il raisevent dell'evento Myevent quando salvi i dati (nel codebehind dello UC) e scoprire che dalla pagina ospite puoi intercettare l'esecuzione dell'evento MYevent dello UC... felicità!

    codice:
    'nello UControl
    'dichiaro l'evento public
       Public Event myevent()
    
    'al salvataggio richiamo l'evento
    Protected sub salva()
        .....
         raiseevent Myevent()
    end sub
    
    
    'nella pagina ospite:
       Private Sub myHandlerSub() Handles UControl.myevent
         .... 
       End Sub
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    ma scusa, non sapevi che gli eventi dello UC sono gestibili dalle pagine che li ospitano ?

    sono classi con dei possibili eventi pubblici, gestibili dall'esterno...

    https://docs.microsoft.com/en-us/pre...ectedfrom=MSDN

    ahi ahi ahi

  5. #5
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    Quote Originariamente inviata da djciko Visualizza il messaggio
    ma scusa, non sapevi che gli eventi dello UC sono gestibili dalle pagine che li ospitano ?
    Non so neanche che giorno è oggi...
    No che non lo sapevo, mica aprivo un thread sennò.
    E sto ancora gioendo dell'aver imparato questa cosa nuova e bellissima...
    unpiccolopassoperunuomoungrandebalzoperMac
    felicecomeunagnellodopopasquettaMac
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  6. #6
    Quote Originariamente inviata da supermac Visualizza il messaggio
    "SI... PUO' ....FAREE!!!!" (cit.)
    .. felicità!
    ... un panino ed un bicchiere di vino ( cit.)
    Ultima modifica di sspintux; 30-10-2020 a 18:24

  7. #7

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    Se ci pensi bene è abbastanza ovvio.

    Gli UC sono nati come sostituzione delle Include di ASP 3.0.

    Pero' sono diventate Classi ospitate da altre Classi, perchè in un ambiente OOP (.Net framework).

    Una classe innestata e registrata come sottoinsieme della classe principale quindi, per fare le veci di una Include (che in ASP classic veniva renderizzata ed alla fine era parte integrante della pagina principale), non poteva che rendere disponibili tutte le sue proprietà ed eventi.

    Gli step sono 3:

    • <fire> dell'evento interno dello UserControl delegato ad un evento pubblico
    • <raise> dell'evento pubblico nel delegato
    • <handle> dell'evento pubblico dalla pagina principale


    ::laureainUserControls::
    Ultima modifica di djciko; 31-10-2020 a 16:31

  9. #9
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    Facciamola più difficile: mettiamo lo UControl dentro all'Itemtemplate di un repeater e quindi facciamo in modo che nella pagina ne vengano visualizzati n.
    Come faccio nella pagina padre a intercettare l'evento pubblico di uno degli UC?
    Cioè non posso scrivere nel codebehind della pagina padre
    codice:
    Private sub myhandlersub() handles Ucontrol.myevent
    ...
    perchè la pagina padre non sa chi sia Ucontrol.... e quindi?
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  10. #10
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    Magari dico una fregnaccia ma forse si potrebbe, nel repeater_itemdatabound, aggiungere l'evento dello UC come handler della funzione myhandlersub... una cosa tipo
    codice:
    AddHandler Ucontrol.Myevent, AddressOf myhandlersub
    è il modo giusto?
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.