У меня такая же проблема, но я объявила все элементы управления в событии page_Init()
. Когда я объявляю обработчик событий для динамически созданной кнопки в цикле и устанавливаю функцию Address to to x, это не работает.Динамическая кнопка Click Событие не запускается при создании в Loop ASP.Net VB
Может ли кто-нибудь помочь.
Вот код в моем page_Init()
:
Private Sub DynamicControls_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
'Dynamically Load X no. of Updates Panels, and x no. of Controls inside UpdatePanels.
If (Not Me.DesignMode) Then ' Source [Error Creating Control" in the Design View in ] Source : http://tinyurl.com/obutas2
Dim xLoop As Integer = 5
For i = 1 To xLoop
Dim TempUpdatePanel As New UpdatePanel
TempUpdatePanel.ID = "MyUpdatePanel" & i
TempUpdatePanel.UpdateMode = UpdatePanelUpdateMode.Conditional
UpdatePanelContainer.Controls.Add(TempUpdatePanel)
Dim TempPanel As New Panel
TempPanel.ID = "MyPanel" & i
TempPanel.Width = 500
TempPanel.Height = 200
TempPanel.BackColor = Drawing.Color.WhiteSmoke
TempUpdatePanel.ContentTemplateContainer.Controls.Add(TempPanel)
For x As Integer = 1 To xLoop
Dim TempNxt_Button As New Button
TempNxt_Button.ID = "MyNextButton" & i
TempNxt_Button.Text = "Next >>"
AddHandler TempNxt_Button.Click, AddressOf Me.Nxt_btn_Click
TempPanel.Controls.Add(TempNxt_Button)
Next
If TempUpdatePanel.ID = "MyUpdatePanel1" Then
TempPanel.Style.Add("display", "block")
Else
TempPanel.Style.Add("display", "none")
End If
Next
End If
End Sub
Вот код Nxt_btn_Click Event
:
Protected Sub Nxt_btn_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim xLoop1 As Integer = 5
For i = 1 To xLoop1
Dim sTempPanel As Panel = FindControl("MyPanel" & i)
If (sTempPanel Is Nothing) Then
Else
sTempPanel.Style.Add("display", "none")
End If
Dim sTempPanel1 As Panel = FindControl("MyPanel" & Mid(sender.ID, Len(sender.ID)) + 1)
If (sTempPanel1 Is Nothing) Then
Else
sTempPanel1.Style.Add("display", "block")
End If
Next
End Sub