Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    25

    VB.NET Handler Eventi Classi

    Ciao a tutti,

    ho un problemino con VB.NET che mi sta facendo perdere un sacco di tempo, e che al momento non ho ancora trovato una soluzione decente.

    Allora... faccio il punto della situazione:

    - Ho una pagina che deve visualizzare una serie di immagini, inizialmente vengono mostrate tutte le immagini in formato icona, e poi dopo il click su una di esse deve comparire in una certa posizione l'immagine zummata.
    Per rendere il tutto un pò più carino tutta questa parte di pagina viene caricata in un updatepanel.

    - Sempre in questa pagina, ho la procedura che fa i dovuti calcoli, preleva le immagini piccole e la grande, aggiorna il contenuto ed in fine aggiorna l'updatepanel.

    - Per rendere il progetto un pò più modulare, la funzione che crea la struttura e mi ridà un oggetto tabella, l'ho pioppata dentro ad una bella classe, che vado ad istanzionare all'occorrenza, chiamiamola immagini.

    Il problema:

    Allora premetto che il codice non da errori (aimè), ma pare che l'unica cosa che non funziona sia l'aggiornamento dell'updatepanel.

    Cmq, non appena la pagina viene aperta cosa succede:

    - Nella pagina ascx ho un certo numero di oggetti tra cui un immagine che se cliccata mi fa comparire nell'updatepanel l'album delle foto.
    L'updatepanel contiene un oggetto panel, con un certo id, che al momento giusto vi andrò ad inserire un control table.

    - Nel page_load creo tutti i dovuti control, tra cui l'immagine da cliccare per aprire l'album, chiamiamola zoom.

    - Nel codebehind della pagine ascx, c'è una funzione che intercetta i click all'immagine zoom, e nel caso, richiama la funzione contenuta nella classe immagini, gli passa gli opportuni parametri, questa funzione torna un oggetto table che contiene il tutto bella pronto, vado ad inserire questa tabella nell'oggetto panel dentro l'updatepanel ed in fine dopo varie azioni, aggiorno l'updatepanel (.update).

    La struttura inserita dentro l'updatepanel e creata dinamicamente, contiene N immagini piccole che anche queste devono avere un handler, che in caso di click richiamano la procedura del codebehind che a sua volta richiama la funzione dalla classe immagini ed infine aggiorna l'updatepanel.

    Andando diretti al problema, cliccando sulle immagini piccole, si vede che il caricamento della procedura parte, ma alla fine non si aggiorna nulla, come se l'aggiornamento dell'updatepanel non partisse (.update).

    Ora, dato che la funzione nella classe immagini, deve creare la struttura e quindi anche le immagini ed i relativi handler, c'è il problema che non posso fare un addhandler e farlo puntare alla procedura del codebehind della pagina ascx, perchè giustamente non si vedono.

    Per fare questo ho provato 2 vie, la prima di creare l'oggetto immagine nel codebehind, assegnargli l'handler e poi passare per riferimento alla funzione della classe immagini l'indirizzo di questa immagini, la quale viene presa e caricata senza essere ricreata, e quindi conservando l'handler, ma non funzionava.

    La seconda prova che ho fatto è stata di passare per riferimento alla funzione della classe immagini direttamente l'eventhandler, e quindi la prodecura di gestione, in modo da avere un collegamento diretto con la procedura del codebehind, ma anche questa non funziona.

    Ora, io non capisco perchè il contenuto dell'updatepanel non mi si aggiorna, tutte le immagini puntano (direttamente o indirettamente) alla procedura che fa i suoi calcoli ed infine richiama l'update, ma è come se questa cosa non ci fosse.

    Potrebbe essere che la chiamata di update debba essere fatta da un oggetto esterno all'updatepanel? non penso...

    Oppure potrebbe essere che, anche passando per riferimento l'handler alla funzione della classe immagini, che lo assegna alle immagini create, in realtà non funziona???

    Io sto facendo un pò di prove, ma non avendo errori, non so proprio da che parte iniziare, o meglio finire, perchè ormai le ho provate tutte.

    Sono cmq quasi convinto che le immagini dentro l'updatepanel riescono a richiamare, tramite handler, la procedura del codebehind, anche perchè il loader della pagina mi indica che un operazione asincrona è in esecuzione, ma poi non succede nulla... sono quasi convinto che il problema è l'updatepanel che non si aggiorna a fine procedura...

    HELP!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    25

    Rettifica...

    Niente da fare, ho fatto un altro test... pensavo che mangiandoci su mi veniva in mente qlc cosa di utile... ma niente!

    Allora ho fatto la prova del 10, penso:

    - Ho creato una nuova sub di prova nella classe immagini, ed alle immagini caricate nell' updatepanel invece di utilizzare come handler la procedura del codebehind gli ho dato questa direttamente, in questa funzione gli ho fatto salvare in session una frase, ho fatto girare il tutto e indovinate un pò..... niente!
    La chiamata asincrona sembra che parte, perchè come dicevo, il loader me lo segnala, ma l'evento click di queste immagini non viene gestito!!!
    Forse allora il problema è che si perde l'handler... ?

    Eppure è molto strano, sembra che se creo un immagine dal codebehind della pagina ascx e la metto nella pagina stessa tutto funziona, se questa cosa la faccio indirettamente, ossia l'immagine la creo in una classe esterna, che poi la passa al codebehind ed infine dal codebehind la passo alla pagina, sembra che l'header si perde!!!
    O quanto meno non viene gestito...

    Mi sapete dare qualche informazione in proposito???

    Grazie a tutti!

    Speriamo che avete qualche buona idea.....

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    25

    Aiuutttooo!!!

    Please.... HELP ME!

    Ho fatto un pò di altri test... e a quanto ne posso capire sembra che il problema sia legato all' updatepanel !!!
    Sembra che, tutti i controlli che si creano a runtime e si inseriscono nell' UP "perdano" la gestione degli eventi, è come se tutti i controlli non avessero il "withevents", il problema è che utilizzano l' addhandler dovrebbe andare in ogni caso!

    La soluzione, peraltro infattibile, è quella di inserire i controlli non a runtime ma statici!
    Ma questo non è possibile!

    Vi prego... aiuuutooooo...

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    25
    Alla faccia... non c'è nessun guru del .NET che mi possa dare una mano?

    stò per...

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.