Salve a tutti,
ho messo su questo ciclo "do while" per far costruire un menu a runtime che legge le voci di menu da un DB. Ogni voce di menu per me diventa un "linkbutton" al quale assegno un dato evento "clik" e un nome pari al nome letto da DB (categoria).

L'evento click di questo "linkbutton" deve poi essere assegnato come "trigger" ad un "UpdatePanel" in modo da usare AJAX per far si che al click sul menu tutto quello che deve succedere succeda dentro l'UpdatePanel.

Diciamo che funziona... ma non bene.

Questi i "sintomi" del problema: al load della pagina i menu vengono tutti costruiti, gli eventi clik assegnati e anche i trigger sembrano funzionare, premendo su una voce di menu qualsiasi LA PRIMA VOLTA l'evento mi si verifica nell'UpdatePane, e quindi tutto è ok, premendo invece LA SECONDA VOLTA la pagina viene ricaricata tutta (addio AJAX) e il ciclo si ripete così ogni volta.

Non ho capito se è un problema di postback. Ho provato a mettere tutto il codice che vi posto sotto dentro un "If Not Page.IsPostbak", ma si incasina ancora di più.

Non so proprio che pensare. Qualcuno saprebbe indicarmi dove sbaglio?



codice:
            Do While dr_Legge.Read
                
                ' Memorizza Campi
                '
                Categoria = dr_Legge.Item("Categoria")
                '
                Dim lnkVoceMenu As New LinkButton
                lnkVoceMenu.CssClass = "linkbutton"
                lnkVoceMenu.ID = "lnkVoceMenu" & intCont.ToString
                lnkVoceMenu.Text = Categoria & "</a></br>"
                AddHandler lnkVoceMenu.Click, AddressOf mioEventoClick
                '
                pnlMenu.Controls.Add(lnkVoceMenu)
                '
                ' Gestione Triggers
                '
                Dim trigger As New AsyncPostBackTrigger
                trigger.ControlID = "lnkVoceMenu" & intCont.ToString
                trigger.EventName = "Click"
                UpdatePanel1.Triggers.Add(trigger)
                '
                ' Distrugge oggetti
                '
                lnkVoceMenu = Nothing
                trigger = Nothing
                '
                intCont += 1
                
            Loop