Gestire l'evento Click con un button dinamico

mercoledì 18 novembre 2009 - 11.57

wiicapri Profilo | Newbie

Buongiorno a tutti e grazie per l'aiuto che mi darete.

Ho inserito in una pagina aspx un oggetto table e nella pagina asp.vb creo una serie di righe e di celle dinamicamente.

All'interno delle celle inserisco una serie di button dinamici.

Il mio problema è far si che ogni singolo button creato possa lanciare delle sub scritte ad hoc, una per button !!!

Spero di essere stato abbastanza chiaro e grazie ancora per l'aiuto

Ciao a tutti

Walter

alx_81 Profilo | Guru

>Buongiorno a tutti e grazie per l'aiuto che mi darete.
Ciao

>Il mio problema è far si che ogni singolo button creato possa
>lanciare delle sub scritte ad hoc, una per button !!!
devi usare la AddHandler:
http://blogs.dotnethell.it/sandro/Join-in-SQL-Server__4152.aspx

questo statement aggiunge a runtime un evento ad un controllo.

>Spero di essere stato abbastanza chiaro e grazie ancora per l'aiuto
di nulla!
--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

amelix Profilo | Expert

>Buongiorno a tutti e grazie per l'aiuto che mi darete.
Ciao!

>Il mio problema è far si che ogni singolo button creato possa
>lanciare delle sub scritte ad hoc, una per button !!!
Cosa intendi per sub scritte ad hoc?
Se non ho capito male nell'evento onRowCommand (spero sia questo) hai a disposizione tutta la riga e (meglio) la collection delle chiavi.

Andrea
http://www.formulawan.com/?ref=DinaMelix

wiicapri Profilo | Newbie

Grazie per le vostre risposte ed il vostro aiuto !

Qui di seguito posto un po del codice che ho scritto, chiaramente è solo la parte che riguarda questi "benedetti" button ....

Dim tCell As New TableCell()
tRow.Cells.Add(tCell)
tCell.BackColor = Drawing.Color.DarkGray
tCell.ForeColor = Drawing.Color.White
tCell.Width = 30
tCell.Height = 30
tCell.HorizontalAlign = HorizontalAlign.Center
Dim b As New Button
b.ID = Camera
b.Text = Camera
AddHandler b.Click, AddressOf ButtonClick
b.Width = 100
tCell.Controls.Add(b)


Ora il mio problema e recuperare il valore della variabile "camera" al click del singolo button ( il valore cambia man mano che vengono generati i button).

Ho anche scritto quest'altro pezzetto di codice ma qui casca l'asino ... ovvero casco io !

Private Sub ButtonClick(ByVal sender As System.Object, ByVal e As System.EventArgs)

'*************************
'qui il mio codice .... quale sarà quello da scrivere ???
'*************************

End Sub



Grazie ancora a tutti,

ciao

Walter

wiicapri Profilo | Newbie

Girando e rigirando ho risolto inserendo tutti i dati che mi servono nell' ID del button e poi richiamo l'ID così:

Dim sButton As String = CType(sender, Button).ID
TextBox2.Text = sButton

inutile dire che non è "farina del mio sacco" ....

Grazie ancora a tutti per l'aiuto

Ciao

Walter

amelix Profilo | Expert

Bene ... non usi le gridView o robe simili ...
Quello che ti ho scritto non ha senso ...

Io avrei usato una cosa leggermente + raffinata ...
Ti crei un Dictionary<string, string> o altro (io conosco molto poco vb.net ...) con primo parametro l'ID (del button) e come secondo parametro la stringa che ti serve (nulla ti vieta di utilizzare una tua classe serializabile).

Nell'evento ButtonClick recuperi l'ID come nellesempio che hai postato e, tramite questo id, accedi al dato da visualizzare o altra operazione da fare.

Mi stavo dimenticando che questo Dictionary<,> lo devi memorizzare nel viewstate.
Andrea
http://www.formulawan.com/?ref=DinaMelix
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5