More passing parameters to dynamically loaded user controls

Discussion in 'ASP .Net' started by voro.cibus@gmail.com, Jul 26, 2005.

  1. Guest

    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.
    , Jul 26, 2005
    #1
    1. Advertising

  2. TE Guest

    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


    <> schrieb im Newsbeitrag
    news:...
    >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.
    >
    TE, Jul 26, 2005
    #2
    1. Advertising

  3. JB McMichael Guest

    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
    >
    >
    > <> schrieb im Newsbeitrag
    > news:...
    >
    >>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.
    >>

    >
    >
    >
    JB McMichael, Jul 27, 2005
    #3
  4. TE Guest

    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" <> schrieb im Newsbeitrag
    news:dc6fjq$8a9$...
    > 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
    >>
    >>
    >> <> schrieb im Newsbeitrag
    >> news:...
    >>
    >>>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.
    >>>

    >>
    >>
    TE, Jul 27, 2005
    #4
    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. Josh
    Replies:
    1
    Views:
    9,519
    Jeffrey Palermo [MCP]
    May 26, 2004
  2. JB McMichael
    Replies:
    0
    Views:
    377
    JB McMichael
    Jul 26, 2005
  3. =?Utf-8?B?V291dGVy?=

    Dynamically Loaded controls loading other controls

    =?Utf-8?B?V291dGVy?=, Feb 27, 2006, in forum: ASP .Net
    Replies:
    3
    Views:
    486
    =?Utf-8?B?V291dGVy?=
    Feb 27, 2006
  4. Josh
    Replies:
    1
    Views:
    192
  5. Josh
    Replies:
    1
    Views:
    236
Loading...

Share This Page