331 messaggi dal 06 maggio 2003
Non riesco a fare funzionare in nessun modo il comando AddHandler, sia che lo usi con bottoni dinamici creati con un ciclo for sia che lo usi con botoni statici. Ecco il mio codice, è inserito in un ciclo for
Dim oButton As New System.Web.UI.WebControls.Button
row = New TableRow
Dim cella As New TableCell
Dim cellaB As New TableCell

cella.Controls.Add(New LiteralControl(file))

row.Cells.Add(cella)

oButton.CommandName = "eliminaAllegato"
oButton.CommandArgument = file
oButton.Text = "XY"
AddHandler oButton.Click, AddressOf EliminaAllegato

cellaB.Controls.Add(oButton)
row.Cells.Add(cellaB)

TBattach.Rows.Add(row)

row.Dispose()

Ovviamente TBattach è un oggetto tabella. Non mi da nessun errore, semplicemente quando clicco sul bottone mi ricarica la pagina e non fa assolutamente nulla. Dove sbaglio?
Questo lavoro lo fai ad ogni postback, giusto? In che punto lo fai?

Ciao

Il mio blog
Homepage
331 messaggi dal 06 maggio 2003
Questa funzione viene lanciata al caricamento della pagina se non è "is postback", altrimenti se necessario viene lanciata da altre funzioni presenti sulla stessa pagina.

Praticamente faccio la lista dei files di una cartella sul server e accanto al nome c'è un bottone che cliccandolo mi lancia la funzione che permette di eliminare quel file...

Solo che non funziona :(

P.S. se qualcuno ha tempo/voglia ho anche un altro problemino: http://forum.aspitalia.com/forum/topic.aspx?PostID=210381&PageIndex=2
Modificato da iena il 20 settembre 2004 09.34 -
Se non ricrei i controlli dopo il postback, questi controlli non esistono quando viene eseguito il codice per gestire tale postback (e per lo stesso motivo non esiste alcun handler dell'evento).

Ciao
331 messaggi dal 06 maggio 2003
.. hum .. non ho capito ....

Al primo caricamento della pagina nel "pageload" viene lanciata questa funzione. Ma già da lì non succede nulla cliccandoci sopra.
Inoltre l'handler viene creato insieme al bottone quindi non capisco perchè non funzioni ... se c'è il bottone dovrebbe esserci pure l'handler ... o sbaglio?
allora...
1) al primo caricamento della pagina (Page.IsPostBack vale false, quindi) tu crei a runtime il tuo Button, ok?
2) Fai il postback: i controlli che hai inserito dinamicamente non sono automaticamente "rigenerati". Se nel pageload non li costruisci di nuovo, non hai lato server il Button che ha generato il postback, e tantomeno hai l'handler dell'evento click.
1.818 messaggi dal 21 giugno 2001
Contributi
iena ha scritto:
.. hum .. non ho capito ....

Al primo caricamento della pagina nel "pageload" viene lanciata questa funzione. Ma già da lì non succede nulla cliccandoci sopra.

Non succede nulla perché quando fai il postback la pagina viene ricreata e se non ricrei contestualmente anche i controlli (nello specifico il pulsante) questi non ci sono più e quindi come fai a gestire l'evento su qualcosa che non esiste?
Devi ricreare i controlli anche dopo il postback.

hyppos
<code> in giro torte sol ciclos et rotor igni</code>
331 messaggi dal 06 maggio 2003
Cradle ha scritto:
allora...
1) al primo caricamento della pagina (Page.IsPostBack vale false, quindi) tu crei a runtime il tuo Button, ok?

Ok, fin quà ci siamo: il bottone mi viene creato. Ma a questo punto cosa succede quando clicco su questo bottone?

2) Fai il postback: i controlli che hai inserito dinamicamente non sono automaticamente "rigenerati". Se nel pageload non li costruisci di nuovo, non hai lato server il Button che ha generato il postback, e tantomeno hai l'handler dell'evento click.

Appunto cliccando sul bottone "faccio postback" ... quindi dovrei ricrearmi l'handler? Questo handler quindi funziona solo nel momento in cui vien fatto il postback e se questo postback è stato fatto dal bottone allora esegue la funzione di cui sopra ... ho capito male?

Io ero convinto che una volta creato il bottone e associato l'handler cliccandoci sopra in qualche modo già sapesse che doveva eseguire una data funzione, un po' come quando da html si imposta sul bottone onClick="funzione"

Quindi teoricamente mi basta far si che ad ogni pageload, indipendentemente dal valore di page.isPostBack, venga "lanciato" la funzione di cui sopra ... o sbaglio?


(scusate per l'ignoranza: sono un po' a digiuno di asp.net ... )

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.