468,753 Members | 1,178 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

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

dynamically writing property values to a control INSIDE of a user control?

I want to use codebehind to pass property values to a control that I've
embedded INSIDE of a user control.

In other words, let's say I have the following:

MyPage.aspx
....with the following control placed on it...
MyUserControl.ascx
.... and inside of MyUserControl.ascx, is an instance of ....
MyCommercialUploadControl1

I want to be able to write a property to the embedded commerical component:
MyCommercialUploadControl1.TargetFolder

I want to be able write this property programmatically from the aspx page
that originally called the instance of MyUserControl, as follows:

[from MyPage.aspx]
MyUserControl.TargetFolder = @"c:\whatever";

Failure #1: I attempted to add logic to the codebehind for my .ascx that
read the value of a property attached to itself, and then mapped that value
to the embedded commercial control, e.g.

MyCommercialUploadControl1.TargetFolder = this.TargetFolder
// "this" refers to the ascx instance

This did not work.

Failure #2: I experimented with various scenarios involving doing the
mappings onPreInit, thinking I might be running into a page lifecycle issue.
This did not work either.

I can successfully write properties to the user control iself, but I haven't
figured out how to write properties to controls INSIDE of the control. In
all cases the debugger indicates null values where i want my properties to
end up. Can anyone help?

Thank you.
-KF

Sep 30 '06 #1
2 1440
In page, you should either embed the value in the HTML tags (ASP.NET tags)
or use Init (not Page Load) to set the value.

In the control, you can be a bit more lax and do not have to aim for Init(),
but it probably will not hurt you.

--
Gregory A. Beamer
MVP; MCP: +I, SE, SD, DBA
http://gregorybeamer.spaces.live.com/

*************************************************
Think Outside the Box!
*************************************************
<ke*****@nospam.nospamwrote in message
news:Ok**************@TK2MSFTNGP04.phx.gbl...
>I want to use codebehind to pass property values to a control that I've
embedded INSIDE of a user control.

In other words, let's say I have the following:

MyPage.aspx
...with the following control placed on it...
MyUserControl.ascx
... and inside of MyUserControl.ascx, is an instance of ....
MyCommercialUploadControl1

I want to be able to write a property to the embedded commerical
component:
MyCommercialUploadControl1.TargetFolder

I want to be able write this property programmatically from the aspx page
that originally called the instance of MyUserControl, as follows:

[from MyPage.aspx]
MyUserControl.TargetFolder = @"c:\whatever";

Failure #1: I attempted to add logic to the codebehind for my .ascx that
read the value of a property attached to itself, and then mapped that
value to the embedded commercial control, e.g.

MyCommercialUploadControl1.TargetFolder = this.TargetFolder
// "this" refers to the ascx instance

This did not work.

Failure #2: I experimented with various scenarios involving doing the
mappings onPreInit, thinking I might be running into a page lifecycle
issue. This did not work either.

I can successfully write properties to the user control iself, but I
haven't figured out how to write properties to controls INSIDE of the
control. In all cases the debugger indicates null values where i want my
properties to end up. Can anyone help?

Thank you.
-KF

Oct 1 '06 #2
Ah, good, thank you so much. Writing Page_Init() method for the aspx page
indeed solved the problem, like this:

protected void Page_Init()
{
PictureUploaderAndProcessor1.PathVirtual =
"~/ni/apps/xxx/images/submitted/";
}

User controls seem so powerful in allowing you to build parameterized,
generic , reusuable functionality. It's too bad these little gotchas trip up
us newbies. I wonder if there's a way that the VS.NET IDE could cue you to
the right practices: maybe you could help it figure out intent with xml
markup or something.

Anyway, thank you very much. Now to finish my abstracted
uploading-and-image-resizing-and-cataloguing widget. ;)

-KF

"Cowboy (Gregory A. Beamer)" <No************@comcast.netNoSpamMwrote in
message news:%2****************@TK2MSFTNGP06.phx.gbl...
In page, you should either embed the value in the HTML tags (ASP.NET tags)
or use Init (not Page Load) to set the value.

In the control, you can be a bit more lax and do not have to aim for
Init(), but it probably will not hurt you.

--
Gregory A. Beamer
MVP; MCP: +I, SE, SD, DBA
http://gregorybeamer.spaces.live.com/

*************************************************
Think Outside the Box!
*************************************************
<ke*****@nospam.nospamwrote in message
news:Ok**************@TK2MSFTNGP04.phx.gbl...
>>I want to use codebehind to pass property values to a control that I've
embedded INSIDE of a user control.

In other words, let's say I have the following:

MyPage.aspx
...with the following control placed on it...
MyUserControl.ascx
... and inside of MyUserControl.ascx, is an instance of ....
MyCommercialUploadControl1

I want to be able to write a property to the embedded commerical
component:
MyCommercialUploadControl1.TargetFolder

I want to be able write this property programmatically from the aspx page
that originally called the instance of MyUserControl, as follows:

[from MyPage.aspx]
MyUserControl.TargetFolder = @"c:\whatever";

Failure #1: I attempted to add logic to the codebehind for my .ascx that
read the value of a property attached to itself, and then mapped that
value to the embedded commercial control, e.g.

MyCommercialUploadControl1.TargetFolder = this.TargetFolder
// "this" refers to the ascx instance

This did not work.

Failure #2: I experimented with various scenarios involving doing the
mappings onPreInit, thinking I might be running into a page lifecycle
issue. This did not work either.

I can successfully write properties to the user control iself, but I
haven't figured out how to write properties to controls INSIDE of the
control. In all cases the debugger indicates null values where i want my
properties to end up. Can anyone help?

Thank you.
-KF


Oct 1 '06 #3

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

6 posts views Thread by Bhavin | last post: by
reply views Thread by Diane Yocom | last post: by
2 posts views Thread by Web Team | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by zhoujie | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.