More passing parameters to dynamically loaded user controls

V

voro.cibus

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.
 
T

TE

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
 
J

JB McMichael

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
 
T

TE

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!
 

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

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,012
Latest member
RoxanneDzm

Latest Threads

Top