How to execute operations on dynamic objects?

  • Thread starter Robson Carvalho Machado
  • Start date
R

Robson Carvalho Machado

Dear friends,

I've created a new label and a new Button on my form using the above code.

Dim myLabel As Label
myLabel = New Label
myLabel.ID = "label1"
myLabel.Text = "Dynamic button test"
myLabel.Attributes("style") = "position:absolute;top:150px;left:100px"
PlaceHolder1.Controls.Add(myLabel)

Dim myButton As Button
myButton = New Button
myButton.ID = "Button1"
myButton.Text = "OK"
myButton.Attributes("style") =
"position:absolute;top:150px;left:150px"
PlaceHolder1.Controls.Add(myButton)


How can I set the actions executed on button1_Click event?

I've tried the following but it does not work:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
label1.Text = "Button Click"
End Sub
 
J

Juno

Hi,

Using AddHandler statement:

AddHandler myButton .Click, AddressOf Button1_Click
 
R

Robson Carvalho Machado

Hi Juno

It works with

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Response.Write("Button Click")
End Sub

but does not work with .....

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
label1.Text = "Button Click"
End Sub

Once label1 is dynamic created

I'm receiving the following error message:

Name label1.Text is not declared

Can You help-me with the complete code to interact this two objects?
 
J

Jos

Robson said:
Hi Juno

It works with

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Response.Write("Button Click")
End Sub

but does not work with .....

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
label1.Text = "Button Click"
End Sub

Once label1 is dynamic created

I'm receiving the following error message:

Name label1.Text is not declared

Can You help-me with the complete code to interact this two objects?

Don't use label1.Text, but use the variable name that you assigned:

myLabel.Text = "Button Click"

You'll have to declare myLabel as a class member, not as a
local variable.

The variable name for a static control is the same as its ID.
This is not true for a dynamic control.
 
R

Robson Carvalho Machado

Dear Jos,

Unfortunely it still not working.

My complete code looks like code above.
Please, can you correct what I did wrong?

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim myLabel As Label
myLabel = New Label
myLabel.ID = "label1"
myLabel.Text = "Dynamic button test"
myLabel.Attributes("style") = "position:absolute;top:150px;left:100px"
PlaceHolder1.Controls.Add(myLabel)

Dim myButton As Button
myButton = New Button
myButton.ID = "Button1"
myButton.Text = "OK"
myButton.Attributes("style") =
"position:absolute;top:170px;left:100px"
PlaceHolder1.Controls.Add(myButton)
With myButton
AddHandler .Click, AddressOf Button1_Click
End With
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
myLabel.text = "Button Clicked"
End Sub
 
R

Robson Carvalho Machado

Dear Jos,

I'm sorry, I didn't saw your comments about transfer declaration to class
area.

Now it worked fine.

Thanks a Lot.
 
R

Robson Carvalho Machado

Dear Friends,

I have the following code that creates dynamic controls at my form.

My dificult is how to correct this code to put distinct AddHandler to each
button and how to choose what label will receive text when Button1 is
clickedor Button2 is clicked.

I want to make possible to change text on Label1 when Button1 is clicked and
change text on Label2 when Button2 is clicked .. and so on...

Regards
Robson Machado

ASPX CODE:
---------------
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="dynamic.aspx.vb"
Inherits="corretoresdeseguros.dynamic"%>
<HTML>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:placeHolder id="PlaceHolder1" runat="server"></asp:placeHolder>
</form>
</body>
</HTML>


CODEBEHIND:
----------------

Public Class dynamic
Inherits System.Web.UI.Page
Dim myLabel As Label
Dim myRadio As RadioButtonList
Dim myRFV As RequiredFieldValidator
Dim myText As TextBox
Dim myButton As Button
Dim myUnits As System.Web.UI.WebControls.Unit

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
AddControls(1, 1, "Label1", "Label")
AddControls(1, 2, "Label2", "Label")
AddControls(1, 1, "Button1", "Button")
AddControls(1, 2, "Button2", "Button")
End Sub
Sub AddControls(ByVal Index As Integer, ByVal QNum As Long, ByVal
LabelText As String, ByVal Type As String)
If Type = "Label" Then
' Add Label
myLabel = New Label
myLabel.ID = "LabelQ" & QNum
myLabel.Text = LabelText & "<br><br>"
myLabel.BorderStyle = 2
PlaceHolder1.Controls.Add(myLabel)
End If

If Type = "Radio" Then
' Add Radio
myRadio = New RadioButtonList
myRadio.ID = "RadioQ" & QNum
myRadio.Items.Add("0")
myRadio.Items.Add("1")
myRadio.Items.Add("2")
myRadio.Items.Add("3")
myRadio.Items.Add("4")
myRadio.Items.Add("5")
myUnits = New System.Web.UI.WebControls.Unit(402)
myRadio.Width = myUnits
myRadio.RepeatDirection = 0
PlaceHolder1.Controls.Add(myRadio)
End If

If Type = "RFV" Then
' Add RFV
myRFV = New RequiredFieldValidator
myRFV.ID = "RFVQ" & QNum
myRFV.ErrorMessage = "Unanswered"
myRFV.ControlToValidate = "RadioQ" & QNum
PlaceHolder1.Controls.Add(myRFV)
End If

If Type = "Button" Then
myButton = New Button
myButton.ID = "Button" & QNum
myButton.Text = LabelText
PlaceHolder1.Controls.Add(myButton)
With myButton
AddHandler .Click, AddressOf Button1_Click
End With
End If

End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
myLabel.Text = "Button Clicked"
End Sub
End Class
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,011
Latest member
AjaUqq1950

Latest Threads

Top