By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,092 Members | 1,546 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,092 IT Pros & Developers. It's quick & easy.

More passing parameters to dynamically loaded user controls

P: n/a
I have been reading up on this all day, and I can't find the answer (or
more likely, don't understand the answers I have found) to my problem.

I have a table that stores the name of my ascx page. My main page can
be called on to load any of the pages referenced in my table.
Therefore, I have no @Register controls in my aspx file.

What I do have is this
dim myUC as control = Page.LoadControl("~/reqforms/" &
GetReqForm(requestID))
mainForm.Controls.Add(myUC)

mainForm is an asp:placeholder I have in the apsx page.

Each of my ascx pages has a public property called rid. What I need to
do is pass requestID to the ascx's rid.

I have seen this mentioned
myUC = ctype(myUC, myUserControl).rid = requestID

The problem I have seen with these though is that they have a page
directive in which they set the classname of the user control. Since I
have no page directives for my dynamically loaded controls, how do I
set the classname? Or am I going in the wrong direction here?

I am basically at a loss, and at the edge of my understanding of vb.net
(been doing this for only 3 months now), so a clear answer with code,
preferably in vb.net would be of immense help to me.

Nov 19 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
Hi,

maybe I misunderstand your problem - you mentioned that all of your ascx`s
have this attribute "rid" - so why not just implement an interface with this
property (rid in your example)? Or assuming "rid" is an attribute in your
aspx and so readable from the ascx? what about session?

Regards,

Thomas
<vo********@gmail.com> schrieb im Newsbeitrag
news:11*********************@z14g2000cwz.googlegro ups.com...
I have been reading up on this all day, and I can't find the answer (or
more likely, don't understand the answers I have found) to my problem.

I have a table that stores the name of my ascx page. My main page can
be called on to load any of the pages referenced in my table.
Therefore, I have no @Register controls in my aspx file.

What I do have is this
dim myUC as control = Page.LoadControl("~/reqforms/" &
GetReqForm(requestID))
mainForm.Controls.Add(myUC)

mainForm is an asp:placeholder I have in the apsx page.

Each of my ascx pages has a public property called rid. What I need to
do is pass requestID to the ascx's rid.

I have seen this mentioned
myUC = ctype(myUC, myUserControl).rid = requestID

The problem I have seen with these though is that they have a page
directive in which they set the classname of the user control. Since I
have no page directives for my dynamically loaded controls, how do I
set the classname? Or am I going in the wrong direction here?

I am basically at a loss, and at the edge of my understanding of vb.net
(been doing this for only 3 months now), so a clear answer with code,
preferably in vb.net would be of immense help to me.

Nov 19 '05 #2

P: n/a
First off, thanks for the reply.

I did not implement an interface because I don't know what that is.

And I thought about using the session scope, but for some reason it
seemed weak to me. Passing in a parameter seemed better somehow.

But again, I am still new to all of this, so my decisions are mainly
based on what I read on the internet.

-JB

Thomas Egginger wrote:
Hi,

maybe I misunderstand your problem - you mentioned that all of your ascx`s
have this attribute "rid" - so why not just implement an interface with this
property (rid in your example)? Or assuming "rid" is an attribute in your
aspx and so readable from the ascx? what about session?

Regards,

Thomas
<vo********@gmail.com> schrieb im Newsbeitrag
news:11*********************@z14g2000cwz.googlegro ups.com...
I have been reading up on this all day, and I can't find the answer (or
more likely, don't understand the answers I have found) to my problem.

I have a table that stores the name of my ascx page. My main page can
be called on to load any of the pages referenced in my table.
Therefore, I have no @Register controls in my aspx file.

What I do have is this
dim myUC as control = Page.LoadControl("~/reqforms/" &
GetReqForm(requestID))
mainForm.Controls.Add(myUC)

mainForm is an asp:placeholder I have in the apsx page.

Each of my ascx pages has a public property called rid. What I need to
do is pass requestID to the ascx's rid.

I have seen this mentioned
myUC = ctype(myUC, myUserControl).rid = requestID

The problem I have seen with these though is that they have a page
directive in which they set the classname of the user control. Since I
have no page directives for my dynamically loaded controls, how do I
set the classname? Or am I going in the wrong direction here?

I am basically at a loss, and at the edge of my understanding of vb.net
(been doing this for only 3 months now), so a clear answer with code,
preferably in vb.net would be of immense help to me.


Nov 19 '05 #3

P: n/a
Hi -

these solutions are just point of view dependant....

if your ascx is only used in this web-project context you could access
objects stored in session (query or whatever) - in my opionion - or you
could implement a property/variable in the aspx, that is read by the ascx.

otherwise - if your master is the asxc and it could be useable from
different webs, then think about the interface solution - but do not forget
to throw an error if your variable is not provided...

concerning interfaces i`d suggest looking for "interfaces .net" in google -
but in short: interfaces are kind of contracts. every class that implements
this interface has to follow this contract (meaning: implementing the
methods with it`s parameters that is defined in the interface) - one
advantage (in your example) - you can instantiate every class implementing
this interface by its interface name!

hope this could help you!

"JB McMichael" <jb@kno-where.com> schrieb im Newsbeitrag
news:dc**********@daisy.noc.ucla.edu...
First off, thanks for the reply.

I did not implement an interface because I don't know what that is.

And I thought about using the session scope, but for some reason it seemed
weak to me. Passing in a parameter seemed better somehow.

But again, I am still new to all of this, so my decisions are mainly based
on what I read on the internet.

-JB

Thomas Egginger wrote:
Hi,

maybe I misunderstand your problem - you mentioned that all of your
ascx`s have this attribute "rid" - so why not just implement an interface
with this property (rid in your example)? Or assuming "rid" is an
attribute in your aspx and so readable from the ascx? what about session?

Regards,

Thomas
<vo********@gmail.com> schrieb im Newsbeitrag
news:11*********************@z14g2000cwz.googlegro ups.com...
I have been reading up on this all day, and I can't find the answer (or
more likely, don't understand the answers I have found) to my problem.

I have a table that stores the name of my ascx page. My main page can
be called on to load any of the pages referenced in my table.
Therefore, I have no @Register controls in my aspx file.

What I do have is this
dim myUC as control = Page.LoadControl("~/reqforms/" &
GetReqForm(requestID))
mainForm.Controls.Add(myUC)

mainForm is an asp:placeholder I have in the apsx page.

Each of my ascx pages has a public property called rid. What I need to
do is pass requestID to the ascx's rid.

I have seen this mentioned
myUC = ctype(myUC, myUserControl).rid = requestID

The problem I have seen with these though is that they have a page
directive in which they set the classname of the user control. Since I
have no page directives for my dynamically loaded controls, how do I
set the classname? Or am I going in the wrong direction here?

I am basically at a loss, and at the edge of my understanding of vb.net
(been doing this for only 3 months now), so a clear answer with code,
preferably in vb.net would be of immense help to me.



Nov 19 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.