469,917 Members | 1,891 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,917 developers. It's quick & easy.

Accessing a usercontrol from parent codebehind

Mat
Hi,

I am having a bit of a problem trying to access / set properties of a
usercontrol from the parent codebehind.

This is what I have so far..

simple.aspx
<%@ Page Inherits="CodeBehindSimple" src="simple.vb" %>
<%@ Register TagPrefix="CC" TagName="Simple" Src="ucSimple.ascx"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<title></title>
</head>
<body>

<form runat="server">

<CC:Simple id="mySimple" myParam="Hello from aspx" runat="server" />

</form>

</body>
</html>

simple.vb
Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls

Public Class CodeBehindSimple
Inherits Page

Protected WithEvents mySimple As Simple

sub Page_Load
mySimple.myParam = "Hello from codebehind"
end sub
End Class

ucSimple.ascx
<%@ Control Language="VB" Inherits="mySimpleNS.Simple"
src="./ucSimple.vb"%>
<asp:Label id="lbl_Simple" runat="server" />[/code]

ucSimple.vb

Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls

Namespace mySimpleNS

Public Class Simple
Inherits UserControl

Protected WithEvents lbl_Simple as Label

public property myParam as string
get
return lbl_Simple.text
end get
set
lbl_Simple.text = value
end set
end property

End Class

End Namespace

What should happen is that the parent codebehind (simple.vb) should
update the usercontrol CC:Simple "myParam" with "Hello from
codebehind". This dont happen, I get an error:

BC30002: Type 'Simple' is not defined.

If I comment out (in simple.vb)
'Protected WithEvents mySimple As Simple

'sub Page_Load
' mySimple.myParam = "Hello from codebehind"
'end sub

I get the text set in the parent (simple.aspx) output.

Anyone got any ideas? BTW I am not using VS.Net.

Cheers.
Nov 18 '05 #1
4 1716
Instead of declaring
Protected WithEvents mySimple As Simple

declare with namespace, like this
Protected WithEvents mySimple As mySimpleNS.Simple

I think that is the issue

--
Saravana
http://dotnetjunkies.com/WebLog/saravana/
www.ExtremeExperts.com
"Mat" <ma*@u2orange.co.uk> wrote in message
news:a7**************************@posting.google.c om...
Hi,

I am having a bit of a problem trying to access / set properties of a
usercontrol from the parent codebehind.

This is what I have so far..

simple.aspx
<%@ Page Inherits="CodeBehindSimple" src="simple.vb" %>
<%@ Register TagPrefix="CC" TagName="Simple" Src="ucSimple.ascx"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<title></title>
</head>
<body>

<form runat="server">

<CC:Simple id="mySimple" myParam="Hello from aspx" runat="server" />

</form>

</body>
</html>

simple.vb
Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls

Public Class CodeBehindSimple
Inherits Page

Protected WithEvents mySimple As Simple

sub Page_Load
mySimple.myParam = "Hello from codebehind"
end sub
End Class

ucSimple.ascx
<%@ Control Language="VB" Inherits="mySimpleNS.Simple"
src="./ucSimple.vb"%>
<asp:Label id="lbl_Simple" runat="server" />[/code]

ucSimple.vb

Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls

Namespace mySimpleNS

Public Class Simple
Inherits UserControl

Protected WithEvents lbl_Simple as Label

public property myParam as string
get
return lbl_Simple.text
end get
set
lbl_Simple.text = value
end set
end property

End Class

End Namespace

What should happen is that the parent codebehind (simple.vb) should
update the usercontrol CC:Simple "myParam" with "Hello from
codebehind". This dont happen, I get an error:

BC30002: Type 'Simple' is not defined.

If I comment out (in simple.vb)
'Protected WithEvents mySimple As Simple

'sub Page_Load
' mySimple.myParam = "Hello from codebehind"
'end sub

I get the text set in the parent (simple.aspx) output.

Anyone got any ideas? BTW I am not using VS.Net.

Cheers.

Nov 18 '05 #2
Mat
Nope, didnt fix it. I now get

BC30002: Type 'mySimpleNS.Simple' is not defined

Cheers,
Mat.

"Saravana" <sa******@sct.co.in> wrote in message news:<rA****************@news.cpqcorp.net>...
Instead of declaring
Protected WithEvents mySimple As Simple

declare with namespace, like this
Protected WithEvents mySimple As mySimpleNS.Simple

I think that is the issue

--
Saravana
http://dotnetjunkies.com/WebLog/saravana/
www.ExtremeExperts.com
"Mat" <ma*@u2orange.co.uk> wrote in message
news:a7**************************@posting.google.c om...
Hi,

I am having a bit of a problem trying to access / set properties of a
usercontrol from the parent codebehind.

This is what I have so far..

simple.aspx
<%@ Page Inherits="CodeBehindSimple" src="simple.vb" %>
<%@ Register TagPrefix="CC" TagName="Simple" Src="ucSimple.ascx"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<title></title>
</head>
<body>

<form runat="server">

<CC:Simple id="mySimple" myParam="Hello from aspx" runat="server" />

</form>

</body>
</html>

simple.vb
Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls

Public Class CodeBehindSimple
Inherits Page

Protected WithEvents mySimple As Simple

sub Page_Load
mySimple.myParam = "Hello from codebehind"
end sub
End Class

ucSimple.ascx
<%@ Control Language="VB" Inherits="mySimpleNS.Simple"
src="./ucSimple.vb"%>
<asp:Label id="lbl_Simple" runat="server" />[/code]

ucSimple.vb

Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls

Namespace mySimpleNS

Public Class Simple
Inherits UserControl

Protected WithEvents lbl_Simple as Label

public property myParam as string
get
return lbl_Simple.text
end get
set
lbl_Simple.text = value
end set
end property

End Class

End Namespace

What should happen is that the parent codebehind (simple.vb) should
update the usercontrol CC:Simple "myParam" with "Hello from
codebehind". This dont happen, I get an error:

BC30002: Type 'Simple' is not defined.

If I comment out (in simple.vb)
'Protected WithEvents mySimple As Simple

'sub Page_Load
' mySimple.myParam = "Hello from codebehind"
'end sub

I get the text set in the parent (simple.aspx) output.

Anyone got any ideas? BTW I am not using VS.Net.

Cheers.

Nov 18 '05 #3
Add Reference to ucsimple.dll when you are compiling your codebehind.

--
Saravana
http://dotnetjunkies.com/WebLog/saravana/
www.ExtremeExperts.com
"Mat" <ma*@u2orange.co.uk> wrote in message
news:a7**************************@posting.google.c om...
Nope, didnt fix it. I now get

BC30002: Type 'mySimpleNS.Simple' is not defined

Cheers,
Mat.

"Saravana" <sa******@sct.co.in> wrote in message

news:<rA****************@news.cpqcorp.net>...
Instead of declaring
Protected WithEvents mySimple As Simple

declare with namespace, like this
Protected WithEvents mySimple As mySimpleNS.Simple

I think that is the issue

--
Saravana
http://dotnetjunkies.com/WebLog/saravana/
www.ExtremeExperts.com
"Mat" <ma*@u2orange.co.uk> wrote in message
news:a7**************************@posting.google.c om...
Hi,

I am having a bit of a problem trying to access / set properties of a
usercontrol from the parent codebehind.

This is what I have so far..

simple.aspx
<%@ Page Inherits="CodeBehindSimple" src="simple.vb" %>
<%@ Register TagPrefix="CC" TagName="Simple" Src="ucSimple.ascx"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<title></title>
</head>
<body>

<form runat="server">

<CC:Simple id="mySimple" myParam="Hello from aspx" runat="server" />

</form>

</body>
</html>

simple.vb
Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls

Public Class CodeBehindSimple
Inherits Page

Protected WithEvents mySimple As Simple

sub Page_Load
mySimple.myParam = "Hello from codebehind"
end sub
End Class

ucSimple.ascx
<%@ Control Language="VB" Inherits="mySimpleNS.Simple"
src="./ucSimple.vb"%>
<asp:Label id="lbl_Simple" runat="server" />[/code]

ucSimple.vb

Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls

Namespace mySimpleNS

Public Class Simple
Inherits UserControl

Protected WithEvents lbl_Simple as Label

public property myParam as string
get
return lbl_Simple.text
end get
set
lbl_Simple.text = value
end set
end property

End Class

End Namespace

What should happen is that the parent codebehind (simple.vb) should
update the usercontrol CC:Simple "myParam" with "Hello from
codebehind". This dont happen, I get an error:

BC30002: Type 'Simple' is not defined.

If I comment out (in simple.vb)
'Protected WithEvents mySimple As Simple

'sub Page_Load
' mySimple.myParam = "Hello from codebehind"
'end sub

I get the text set in the parent (simple.aspx) output.

Anyone got any ideas? BTW I am not using VS.Net.

Cheers.

Nov 18 '05 #4
Mat
Something just hit home... I am not compiling the codebehind for the
usercontrol. This is probably why this is not working. What I am
trying to achieve is possibly not possilble within the realms of a
usercontrol.

From my readings (correct me if I am wrong), a usercontrol is an
uncompiled control, once compiled it is then considered a
servercontrol.

Do you think that what I am attempting to achieve in an uncompiled
state is possible?

Cheers for ALL your help, I owe you a virtual beer!
Mat.

"Saravana" <sa******@sct.co.in> wrote in message news:<fI****************@news.cpqcorp.net>...
Add Reference to ucsimple.dll when you are compiling your codebehind.

--
Saravana
http://dotnetjunkies.com/WebLog/saravana/
www.ExtremeExperts.com
"Mat" <ma*@u2orange.co.uk> wrote in message
news:a7**************************@posting.google.c om...
Nope, didnt fix it. I now get

BC30002: Type 'mySimpleNS.Simple' is not defined

Cheers,
Mat.

"Saravana" <sa******@sct.co.in> wrote in message

news:<rA****************@news.cpqcorp.net>...
Instead of declaring
Protected WithEvents mySimple As Simple

declare with namespace, like this
Protected WithEvents mySimple As mySimpleNS.Simple

I think that is the issue

--
Saravana
http://dotnetjunkies.com/WebLog/saravana/
www.ExtremeExperts.com
"Mat" <ma*@u2orange.co.uk> wrote in message
news:a7**************************@posting.google.c om...
> Hi,
>
> I am having a bit of a problem trying to access / set properties of a
> usercontrol from the parent codebehind.
>
> This is what I have so far..
>
> simple.aspx
> <%@ Page Inherits="CodeBehindSimple" src="simple.vb" %>
> <%@ Register TagPrefix="CC" TagName="Simple" Src="ucSimple.ascx"%>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
> "http://www.w3.org/TR/REC-html40/strict.dtd">
> <html>
> <head>
> <meta http-equiv="Content-Type" content="text/html;
> charset=iso-8859-1">
> <title></title>
> </head>
> <body>
>
> <form runat="server">
>
> <CC:Simple id="mySimple" myParam="Hello from aspx" runat="server" />
>
> </form>
>
> </body>
> </html>
>
> simple.vb
> Imports System
> Imports System.Web.UI
> Imports System.Web.UI.WebControls
> Imports System.Web.UI.HtmlControls
>
> Public Class CodeBehindSimple
> Inherits Page
>
> Protected WithEvents mySimple As Simple
>
> sub Page_Load
> mySimple.myParam = "Hello from codebehind"
> end sub
> End Class
>
> ucSimple.ascx
> <%@ Control Language="VB" Inherits="mySimpleNS.Simple"
> src="./ucSimple.vb"%>
>
>
> <asp:Label id="lbl_Simple" runat="server" />[/code]
>
> ucSimple.vb
>
> Imports System
> Imports System.Web.UI
> Imports System.Web.UI.WebControls
> Imports System.Web.UI.HtmlControls
>
> Namespace mySimpleNS
>
> Public Class Simple
> Inherits UserControl
>
> Protected WithEvents lbl_Simple as Label
>
> public property myParam as string
> get
> return lbl_Simple.text
> end get
> set
> lbl_Simple.text = value
> end set
> end property
>
> End Class
>
> End Namespace
>
> What should happen is that the parent codebehind (simple.vb) should
> update the usercontrol CC:Simple "myParam" with "Hello from
> codebehind". This dont happen, I get an error:
>
> BC30002: Type 'Simple' is not defined.
>
> If I comment out (in simple.vb)
> 'Protected WithEvents mySimple As Simple
>
> 'sub Page_Load
> ' mySimple.myParam = "Hello from codebehind"
> 'end sub
>
> I get the text set in the parent (simple.aspx) output.
>
> Anyone got any ideas? BTW I am not using VS.Net.
>
> Cheers.

Nov 18 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

reply views Thread by kevin | last post: by
6 posts views Thread by Pete Davis | last post: by
9 posts views Thread by Marcelo Cabrera | last post: by
9 posts views Thread by J055 | last post: by
14 posts views Thread by =?Utf-8?B?QWxleCBNYWdoZW4=?= | last post: by
1 post views Thread by mAbZ | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.