2016-03-22 1 views
0

Lorsque ma page ASP est chargée, je lit les données d'une base de données SQL dans une liste d'objets, puis parcourt cette liste et crée des espaces réservés dynamiques, des panneaux de mise à jour, des zones de texte et des boutons un espace réservé principal. Chaque panneau de mise à jour est défini sur conditionnel et le bouton unique est ajouté au scriptmanager. J'ai essayé de créer dynamiquement des triggers asynchrones mais j'ai trouvé que ce n'était pas possible. Ci-dessous mon code:Répondre aux boutons de publication asynchrones créés dynamiquement

Dim plcComments As New PlaceHolder() 
plcComments.ID = "plcComments" + Link.ID.ToString() 

Dim updComments As New UpdatePanel() 
updComments.ID = "updComments" + Link.ID.ToString() 
updComments.UpdateMode = UpdatePanelUpdateMode.Conditional 

Dim txtComment As New TextBox() 
txtComment.ID = "txtComment" + Link.ID.ToString() 
txtComment.Text = "txtComment " + Link.ID.ToString() 'Example text 
updComments.ContentTemplateContainer.Controls.Add(txtComment) 

Dim btnComment As New Button() 
btnComment.ID = "btnComment" + Link.ID.ToString() 
btnComment.Text = "btnComment" + Link.ID.ToString() 
updComments.ContentTemplateContainer.Controls.Add(btnComment) 
ScriptManager1.RegisterAsyncPostBackControl(btnComment) 

plcComments.Controls.Add(updComments) 

Dans des circonstances normales, je comprends que vous auriez code derrière pour chaque bouton qui agit comme un déclencheur. Comme ces boutons sont créés dynamiquement avec des noms uniques, comment puis-je réagir à chaque bouton quand il est pressé?

Répondre

0

Après avoir examiné la fonction AddHandler je suis venu avec cette méthode sale:

AddHandler btnComment.Click, AddressOf Me.Button_Handler 

Ce verrous à chaque bouton comme il est créé, les points de retour à la sous routine, et crée les contrôles dans le sous-programme basé sur l'expéditeur. Probablement pas le plus propre ou le meilleur moyen de le faire mais cela fonctionne.