When you click the button and postback, the button isn't re-created, thus
the event is never fired. People make this mistake often. You don't have
to set the eventhandler when originally creating the item, you need to set
it on postback.
If you simply remove the not ispostback check and always call AddButton in
page_load it'll work.
To reinforce my original point though, you could actually do:
Dim button As New Button
button.Text = "Button" & Count.ToString
button.ID = "Button" & Count.ToString
if page.ispostback then
AddHandler button.Click, AddressOf button_Click
end if
PlaceHolder1.Controls.Add(button)
Count += 1
notice how the handler is only hooked up on postback - I don't recommend it,
since it'll only avoid a little overhead but will make it look more
confusing. I just wanted to point it out to illustrate that events need to
be hooked on postback, not on non-postback.
Karl
--
MY ASP.Net tutorials
http://www.openmymind.net/
"BluDog" <> wrote in message
news:...
> Hi
>
> I am trying to test dynamically created controls, to do this i have
> added a placeholder to a WbForm and added the following code behind:
>
> Private Property Count() As Integer
> Get
> If ViewState("Count") Is Nothing Then ViewState("Count") = 1
> Return CType(ViewState("Count"), Integer)
> End Get
> Set(ByVal Value As Integer)
> ViewState("Count") = Value
> End Set
> End Property
>
> Private Sub Page_Load(ByVal sender As System.Object, _
> ByVal e As System.EventArgs) Handles MyBase.Load
> If Not IsPostBack Then AddButton()
> End Sub
>
> Private Sub button_Click(ByVal sender As Object, ByVal e As EventArgs)
> AddButton()
> End Sub
>
> Private Sub AddButton()
>
> Dim button As New Button
> button.Text = "Button" & Count.ToString
> button.ID = "Button" & Count.ToString
> AddHandler button.Click, AddressOf button_Click
> PlaceHolder1.Controls.Add(button)
> Count += 1
>
> End Sub
>
> What i would expect is a button to be added to the placeholder during
> the first load of the page, then each time the button is cllicked
> another button to be added to the form.
>
> However the original button is added in the load event, but the click
> event is never handled on the dynamically created buttons, so on
> postbacks no buttons are shown.
>
> Can anyone explain how to acheive what i am afer here?
>
> Thanks
>
> Blu.