Assegnare Evento Click a LinkButton dentro un DataList

lunedì 31 agosto 2009 - 18.00

igorbaldacci Profilo | Newbie

Salve a tutti,
ho un DataList all'interno di un Accordion, questo DataList crea dinamicamente dei LinkButton leggendo i dati dal DB. A questi LinkButton vorrei assegnare sempre in maniera dinamica l'evento click, ma sembra che non riesca a "raggiungere" questi LinkButton.

Questa dunque la mia situazione: Accordion --> DataList --> LinkButton:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


Nel code ho provato in questo modo: assegno l'evento "ItemDataBound" al DataList e in questo assegno l'evento click ai pulsanti. Ma sembra che non funzioni!

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


Qualche suggerimento che mi possa aiutare? Sono affranto...

Gluck74 Profilo | Guru

premesso che non sono un genio in VB, premesso che non ben capito cosa fa la funzione
BindGrid(dtlSottomenu, hydlblIDMenu.Value)
Io farei queste due prove:

sposta la riga
AddHandler dtlSottomenu.ItemDataBound, AddressOf dtlSottomenu_ItemDataBound
Prima della chiamata al "BindGrid";

Nella funzione "dtlSottomenu_ItemDataBound" referenzia il datagrid semplicemente con
Dim dtlSottomenu As DataList = CType(sender, DataList)


Per ora non mi viene in mente altro..... tranne che controllare la giusta sequenza degli eventi

igorbaldacci Profilo | Newbie

Ciao Gluck, grazie mille del tuo aiuto.

Ho provato il tuo suggerimento, dunque: se sposto l'AddHendler prima del Binding del DataList (la funzione BindGrid fa proprio questo, te la allego sotto) poi non mi trova il LinkButton, lasciandolo li dov'è e usando il tuo secondo suggerimento per referenziarlo invece trova il LinkButton senza dare errore ma non gli assegna l'vento click!

Non so proprio più come fare, l'inghippo credo sia nel fatto che il DataList è annidato in un Accordion, ma come fare a risolvere non so! A te viene in mente altro suggerimento?

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Gluck74 Profilo | Guru

ciao igorbaldacci

>Ho provato il tuo suggerimento, dunque: se sposto l'AddHendler
>prima del Binding del DataList (la funzione BindGrid fa proprio
>questo, te la allego sotto) poi non mi trova il LinkButton, lasciandolo
>li dov'è e usando il tuo secondo suggerimento per referenziarlo
>invece trova il LinkButton senza dare errore ma non gli assegna
>l'vento click!
>

questo mi suona un po strano........
come fa un evento a scattare prima che sia assegnato?? Se il bind lo chiami prima di assegnare un handler all'evento, questo non dovrebbe essere capace di partire da solo...

inoltre, hai provato ad attaccare l'handler direttamente da design invece che da codice?
<asp:LinkButton ID="lnkSottomenu" runat="server" CssClass="LinkMedio" CommandArgument='<%# Bind("IDMenu") %>' Text='<%# Bind("VoceMenu") %>' onCLick="lnkSottomenu_Click"> </asp:LinkButton>

per quanto riguarda l'evento click sul linkButton, non saprei. faccio qualche prova....


igorbaldacci Profilo | Newbie

Ce l'abbiamo fatta!!
Grazie mille Gluck, alla fine il tuo suggerimento di mettere direttamente la funzione sull'evento "OnClick" del LinkButton è stata quella vincente! Come sempre, le cose più semplici sono quelle che funzionano!

Ti confermo inoltre la "stranezza" che ti ho indicato. In effetti suona strano anche a me, ma ti assicuro che dalle prove che ho fatto succedeva proprio quello!

Comunque grazie ancora per la pazienza e per il supporto. Oltre a risolvere il mio problema, ho imparato qualcosa in più.

CIAO

Gluck74 Profilo | Guru

Mi fa piacere. ciao


P.S.: puoi segnare il thread come risolto? grazie
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