Home All Groups Group Topic Archive Search About

Dynamically adding in User Controls

Author
26 Jul 2006 9:42 PM
tshad
Is there a way to dynamically add in User Controls where I would get the
name from a session variable:

If I have the following code:
******************************************************************************
<%@ Page Language="VB" trace="false" debug="true" ContentType="text/html"
ResponseEncoding="iso-8859-1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<%@ Register TagPrefix="fts" TagName="Navigate" Src="sdhcNavigate.ascx" %>
<%@ Register TagPrefix="fts" TagName="Navigate" Src="ft2Navigate.ascx" %>
<%@ Register TagPrefix="fts" TagName="Navigate" Src="sbNavigate.ascx" %>

<html>
<head>
<title>:: Staffing Workshop ::</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<body id="myBody"  runat="server">
<form id="addForm" runat="server">

<fts:Navigate runat="Server"/>

</form>
</body>
</html>
********************************************************************************

I would like to change it so that I can do something like changing the Src
attribute of the Register statement based on a session variable.

For example if my session variable "company" was either "sdhcNavigate.ascx",
"ft2Navigate.ascx" or "sbNavigate.ascx"

******************************************************************************
<%@ Page Language="VB" trace="false" debug="true" ContentType="text/html"
ResponseEncoding="iso-8859-1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<%@ Register TagPrefix="fts" TagName="Navigate" Src="" %>
<script runat="server">
     Sub Page_Load(sender as Object, e as EventArgs)
        if not IsPostBack

            Set the Src of the control here (or maybe in the html area)

        end if
</script
<html>
<head>
<title>:: Staffing Workshop ::</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<body id="myBody"  runat="server">
<form id="addForm" runat="server">

<fts:Navigate runat="Server"/>

</form>
</body>
</html>
********************************************************************************

I would use this in all my 50 pages to load the control based on the
company.

Thanks,

Tom

Author
27 Jul 2006 9:01 AM
gareth
Hi,

The way I do this:

Don't put any register tag prefixes.
Put a placeholder where you want the control to appear.
In your code behind load the control you want, i.e.:

Dim MyControl As New Control
MyControl = LoadControl("TravelClinicSearch.ascx")
plcDatabases.Controls.Add(MyControl)

Where plcDatabases is the name of the placeholder. Obviously, the
control name can be a variable.

Hope this helps.

Gareth

tshad wrote:
Show quoteHide quote
> Is there a way to dynamically add in User Controls where I would get the
> name from a session variable:
>
> If I have the following code:
> ******************************************************************************
> <%@ Page Language="VB" trace="false" debug="true" ContentType="text/html"
> ResponseEncoding="iso-8859-1" %>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
> "http://www.w3.org/TR/html4/loose.dtd">
>
> <%@ Register TagPrefix="fts" TagName="Navigate" Src="sdhcNavigate.ascx" %>
> <%@ Register TagPrefix="fts" TagName="Navigate" Src="ft2Navigate.ascx" %>
> <%@ Register TagPrefix="fts" TagName="Navigate" Src="sbNavigate.ascx" %>
>
> <html>
> <head>
> <title>:: Staffing Workshop ::</title>
> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
> <body id="myBody"  runat="server">
> <form id="addForm" runat="server">
>
>  <fts:Navigate runat="Server"/>
>
> </form>
> </body>
> </html>
> ********************************************************************************
>
> I would like to change it so that I can do something like changing the Src
> attribute of the Register statement based on a session variable.
>
> For example if my session variable "company" was either "sdhcNavigate.ascx",
> "ft2Navigate.ascx" or "sbNavigate.ascx"
>
> ******************************************************************************
> <%@ Page Language="VB" trace="false" debug="true" ContentType="text/html"
> ResponseEncoding="iso-8859-1" %>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
> "http://www.w3.org/TR/html4/loose.dtd">
>
> <%@ Register TagPrefix="fts" TagName="Navigate" Src="" %>
> <script runat="server">
>      Sub Page_Load(sender as Object, e as EventArgs)
>         if not IsPostBack
>
>             Set the Src of the control here (or maybe in the html area)
>
>         end if
> </script
> <html>
> <head>
> <title>:: Staffing Workshop ::</title>
> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
> <body id="myBody"  runat="server">
> <form id="addForm" runat="server">
>
>  <fts:Navigate runat="Server"/>
>
> </form>
> </body>
> </html>
> ********************************************************************************
>
> I would use this in all my 50 pages to load the control based on the
> company.
>
> Thanks,
>
> Tom
Author
28 Jul 2006 1:08 AM
tshad
That was what I was looking for.

I wanted to be able to load a control depending on settings in my session
variables and this would allow me to do that.

Thanks,

Tom
Show quoteHide quote
"gareth" <garethrichardad***@gmail.com> wrote in message
news:1153990871.597601.90920@i3g2000cwc.googlegroups.com...
> Hi,
>
> The way I do this:
>
> Don't put any register tag prefixes.
> Put a placeholder where you want the control to appear.
> In your code behind load the control you want, i.e.:
>
> Dim MyControl As New Control
> MyControl = LoadControl("TravelClinicSearch.ascx")
> plcDatabases.Controls.Add(MyControl)
>
> Where plcDatabases is the name of the placeholder. Obviously, the
> control name can be a variable.
>
> Hope this helps.
>
> Gareth
>
> tshad wrote:
>> Is there a way to dynamically add in User Controls where I would get the
>> name from a session variable:
>>
>> If I have the following code:
>> ******************************************************************************
>> <%@ Page Language="VB" trace="false" debug="true" ContentType="text/html"
>> ResponseEncoding="iso-8859-1" %>
>> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
>> "http://www.w3.org/TR/html4/loose.dtd">
>>
>> <%@ Register TagPrefix="fts" TagName="Navigate" Src="sdhcNavigate.ascx"
>> %>
>> <%@ Register TagPrefix="fts" TagName="Navigate" Src="ft2Navigate.ascx" %>
>> <%@ Register TagPrefix="fts" TagName="Navigate" Src="sbNavigate.ascx" %>
>>
>> <html>
>> <head>
>> <title>:: Staffing Workshop ::</title>
>> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
>> <body id="myBody"  runat="server">
>> <form id="addForm" runat="server">
>>
>>  <fts:Navigate runat="Server"/>
>>
>> </form>
>> </body>
>> </html>
>> ********************************************************************************
>>
>> I would like to change it so that I can do something like changing the
>> Src
>> attribute of the Register statement based on a session variable.
>>
>> For example if my session variable "company" was either
>> "sdhcNavigate.ascx",
>> "ft2Navigate.ascx" or "sbNavigate.ascx"
>>
>> ******************************************************************************
>> <%@ Page Language="VB" trace="false" debug="true" ContentType="text/html"
>> ResponseEncoding="iso-8859-1" %>
>> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
>> "http://www.w3.org/TR/html4/loose.dtd">
>>
>> <%@ Register TagPrefix="fts" TagName="Navigate" Src="" %>
>> <script runat="server">
>>      Sub Page_Load(sender as Object, e as EventArgs)
>>         if not IsPostBack
>>
>>             Set the Src of the control here (or maybe in the html area)
>>
>>         end if
>> </script
>> <html>
>> <head>
>> <title>:: Staffing Workshop ::</title>
>> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
>> <body id="myBody"  runat="server">
>> <form id="addForm" runat="server">
>>
>>  <fts:Navigate runat="Server"/>
>>
>> </form>
>> </body>
>> </html>
>> ********************************************************************************
>>
>> I would use this in all my 50 pages to load the control based on the
>> company.
>>
>> Thanks,
>>
>> Tom
>