Finding Controls in User Control

F

Fred Chateau

I am trying to reference a server control in a user control, from the
containing page. Is there a way to do that? I have tried
"UserControl1.FindControl("ControlName")" but I get a null reference.
 
F

Fred Chateau

I should mention, in case it makes a difference, that I'm loading the user
control dynamically in Page_Init.
 
T

tomisarobot

UserControl1.FindControl() will search in your user control, try
searching in the page object?
 
G

Guest

Hi Fred,

This is not proper way of solving the problem. It may not work because if
the control is nested within a container control, you have to call
FindControl recursively or use "$" separator when passing the control id to
FindControl method. There's another, much more effective and cleaner way of
doing this type of task, by exposing a property from the user control, which
then can be set or read by the containing page. Let's imagine your user
control has got a text box for extering a user's first name. Containing page
does not know the internal structure of the user control (well it shouldn't
know), therefore it's better to create a property to abstract the First Name:

-- user control --

public string FirstName
{
get
{
return txtFirstName.Text;
}
set
{
txtFirstName.Text = value;
}
}


now, on the containing page set / get the value of the property,
1. declaratively in the aspx code
<uc1:MyCustomControl runat="server" id="myControl" FirstName="Fred"/>
2. or programatically in the code behind:

protected void btn_Click(object sender, EventArgs e)
{
SaveUserDataToDataBase(myControl.FirstName);
}

Hope this helps
 
F

Fred Chateau

I still have the same problem. When I load the User Control dynamically, I
can't seem to get a reference to it.

--
Regards,

Fred Chateau
fchateauAtComcastDotNet
 
F

Fred Chateau

I figured it out.

PlaceholderControl.Controls[0].FindControl("ControlName")

--
Regards,

Fred Chateau
fchateauAtComcastDotNet
 

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,774
Messages
2,569,598
Members
45,158
Latest member
Vinay_Kumar Nevatia
Top