ByVal sender As Object, ByVal e As EventArgs - can I send more?

D

David Lozzi

I have the following drop down list:

<asp:DropDownList id="ddDept" runat="server" DataSource='<%#
LoadDropDown("DEPT") %>' DataTextField="strName" DataValueField="strName"
AutoPostBack="True"
OnSelectedIndexChanged="UpdateText('txtDepartment')"></asp:DropDownList>

and on change I would like the value of the drop down to populate a text
box. Here's the function:

Sub UpdateText(ByVal sender As Object, ByVal e As EventArgs, ByVal txt
As String)
Dim dd As DropDownList = sender
Dim tx as TextBox
tx = dd.Parent.FindControl(txt)
'tx = dd.Parent.FindControl("txtDepartment")
If dd.SelectedIndex > 0 Then
tx.Text = dd.SelectedValue
End If
End Sub

Now, i just added the references to tx as textbox and that's where I get the
issues. If I remove that and uncomment the line that finds the control it
works great! However, I have several drop downs that I want to use this
function with so I don't want to make several of the same functions.

Is there a way to send data to a Sub/function from the drop down and keep
the sender object? Is there a way to send the drop down object and another
variable to the sub/function? Something like this in Javascript works:
onchange="UpdateText(this,'txtDepartment')". Of course I don't want to use
javascript, I want it all done in the code.

Thanks!

David Lozzi
 
D

David Lozzi

Is it possible to do something like this instead?

OnSelectedIndexChanged="UpdateText(txtDepartment,ddDept)"

Function UpdateText(ByVal txt As TextBox, ByVal ddl As DropDownList)



If ddl.SelectedIndex > 0 Then

txt.Text = ddl.SelectedValue

End If

End Function


Currently, i get this error:

'AddressOf' operand must be the name of a method; no parentheses are needed


thanks!
 
H

Harolds

Sub ddl_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
handles ddlA.SelectedIndexChanged, ddlB.SelectedIndexChanged,
ddlC.SelectedIndexChanged
dim txt as textbox
If ctype(sender,DropDownList).SelectedIndex > 0 Then
select case ctype(sender,DropDownList).id
case "ddlA"
txt = findcontrol("txtA")
case "ddlB"
txt = findcontrol("txtB")
case "ddlC"
txt = findcontrol("txtC")
end select
txt.text = sender.selectvalue
end if
 

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

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,822
Latest member
israfaceZa

Latest Threads

Top