How to reference UserControl in server code

Discussion in 'ASP .Net Web Controls' started by Mark Friedman, Jul 9, 2003.

  1. I can't seem to figure out how to get a reference to a UserControl in the
    code-behind for the page that contains the control. All the examples I've
    seen show how to pass property values from the containing page's HTML to the
    UserControl but nothing I've seen shows how to reference the UserControl's
    properties (or subcontrols) from the containing page's server-side code.
    Note that I'm not creating the UserControl prgrammatically via LoadControl -
    I'm creating the UserControl declaratively in the page's HTML.

    Thanks in advance for any help.

    -Mark
    Mark Friedman, Jul 9, 2003
    #1
    1. Advertising

  2. Mark Friedman

    Kenn Ghannon Guest

    I think you can do it using a
    System.Web.UI.HtmlControls.HtmlGenericControl...


    "Mark Friedman" <> wrote in message
    news:...
    > I can't seem to figure out how to get a reference to a UserControl in the
    > code-behind for the page that contains the control. All the examples I've
    > seen show how to pass property values from the containing page's HTML to

    the
    > UserControl but nothing I've seen shows how to reference the UserControl's
    > properties (or subcontrols) from the containing page's server-side code.
    > Note that I'm not creating the UserControl prgrammatically via

    LoadControl -
    > I'm creating the UserControl declaratively in the page's HTML.
    >
    > Thanks in advance for any help.
    >
    > -Mark
    >
    >
    Kenn Ghannon, Jul 9, 2003
    #2
    1. Advertising

  3. I'm not sure what you mean here, Kenn. Could you be a little more specific?

    -Mark

    "Kenn Ghannon" <> wrote in message
    news:tg0Pa.7215$...
    > I think you can do it using a
    > System.Web.UI.HtmlControls.HtmlGenericControl...
    >
    >
    > "Mark Friedman" <> wrote in message
    > news:...
    > > I can't seem to figure out how to get a reference to a UserControl in

    the
    > > code-behind for the page that contains the control. All the examples

    I've
    > > seen show how to pass property values from the containing page's HTML to

    > the
    > > UserControl but nothing I've seen shows how to reference the

    UserControl's
    > > properties (or subcontrols) from the containing page's server-side code.
    > > Note that I'm not creating the UserControl prgrammatically via

    > LoadControl -
    > > I'm creating the UserControl declaratively in the page's HTML.
    > >
    > > Thanks in advance for any help.
    > >
    > > -Mark
    > >
    > >

    >
    >
    Mark Friedman, Jul 10, 2003
    #3
  4. How do you know which control is the one you want, since the IDs get
    mangled?

    -Mark

    "Iain" <> wrote in message
    news:...
    > "Mark Friedman" <> wrote in message

    news:<>...
    > > I can't seem to figure out how to get a reference to a UserControl in

    the
    > > code-behind for the page that contains the control. All the examples

    I've
    > > seen show how to pass property values from the containing page's HTML to

    the
    > > UserControl but nothing I've seen shows how to reference the

    UserControl's
    > > properties (or subcontrols) from the containing page's server-side code.
    > > Note that I'm not creating the UserControl prgrammatically via

    LoadControl -
    > > I'm creating the UserControl declaratively in the page's HTML.
    > >
    > > Thanks in advance for any help.
    > >
    > > -Mark

    >
    > I've been having the same problem. To work around it, I have some code
    > that iterates through the controls on the page looking for a control
    > with a particular id, so I have a function that iterates across
    > Page.Controls[1].Controls checking each control to see if it's id is
    > the desired one, and returning it when found. It's a really terrible
    > way to do things, but it seems to be a suitable placeholder until I
    > find out how it's supposed to be done.
    >
    > -Iain
    Mark Friedman, Jul 10, 2003
    #4
  5. I discovered the answer to my own question. You just need to add a member
    to your page behind class with the same name as the ID of the UserControl
    and with a type of your UserControl, which is usually the same as the first
    part of the UserControl's ascx file name. For example, if your UserControl
    is defined in Foo.ascx and you place it in Bar.aspx as:

    <uc1:Foo id="Foo1" runat="server"></uc1:Foo>

    then in your code-behind page for Bar.aspx you just need to have:


    Public Class Bar
    Inherits System.Web.UI.Page
    Protected WithEvents Button1 As System.Web.UI.WebControls.Button
    ...

    ' This must be put in manually, even though it ought to be done
    automatically
    ' by VS.NET when you put the user control on the page, just like it
    did for
    ' the button above
    Protected Foo1 As Foo


    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As
    System.EventArgs) Handles Button1.Click
    Foo1.MyProperty = "Whatever"
    End Sub
    ...

    End Class

    and then you can refer to the properties, etc. of the UserControl.

    Not my comment above that I think that it's a bug that VS.NET doesn't
    automatically put the member variable in there for you the way it does for
    other server controls.

    -Mark

    "Mark Friedman" <> wrote in message
    news:...
    > I can't seem to figure out how to get a reference to a UserControl in the
    > code-behind for the page that contains the control. All the examples I've
    > seen show how to pass property values from the containing page's HTML to

    the
    > UserControl but nothing I've seen shows how to reference the UserControl's
    > properties (or subcontrols) from the containing page's server-side code.
    > Note that I'm not creating the UserControl prgrammatically via

    LoadControl -
    > I'm creating the UserControl declaratively in the page's HTML.
    >
    > Thanks in advance for any help.
    >
    > -Mark
    >
    >
    Mark Friedman, Jul 10, 2003
    #5
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. huobazi
    Replies:
    1
    Views:
    682
    David Waz...
    Jul 3, 2003
  2. Mark Friedman

    How to reference UserControl in server code

    Mark Friedman, Jul 9, 2003, in forum: ASP .Net
    Replies:
    4
    Views:
    481
    Mark Friedman
    Jul 10, 2003
  3. Rajesh Tiwari

    Can we use a usercontrol inside a usercontrol

    Rajesh Tiwari, Aug 12, 2003, in forum: ASP .Net
    Replies:
    0
    Views:
    409
    Rajesh Tiwari
    Aug 12, 2003
  4. nail
    Replies:
    0
    Views:
    1,537
  5. Reik
    Replies:
    1
    Views:
    240
    Brock Allen
    Apr 12, 2005
Loading...

Share This Page