AJAX: Assegnare Triggers a Runtime

venerdì 30 maggio 2008 - 16.55

igorbaldacci Profilo | Newbie

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?

QUESTO IL 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

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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5