Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / ASP.NET / General / April 2008

Tip: Looking for answers? Try searching our database.

ASP namespace strong type access for dynamically loaded user control

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Greg James - 07 Apr 2008 15:44 GMT
ASP namespace strong type access for dynamically loaded user control
(web application, not web site)

I have a user control in a web application which I dynamically load
from an aspx page as follows:
UserControl ctl = Page.LoadControl("./User Controls/
MailForwardingGrid2.ascx") as UserControl;
form1.Controls.Add(ctl);

This works fine.

I have added 2 properties to the user control and would like to load
the strong type version of the user control in order to set the new

parameters at runtime.  I would like to do something like the
following:
ASP.usercontrols_MailForwardingGrid2_ascx ctrl =
(ASP.usercontrols_MailForwardingGrid2_ascx)Page.LoadControl("./User

Controls/MailForwardingGrid2.ascx");
ctrl.SourceTypeID = Int32.Parse(context);
ctrl.SourceID = id;

Unfortunately, the ASP namespace is not showing my user control (the
ASP namespace is not showing up at all).

I have tried "<%@ Register ... " and  "<%@ Reference ... " to no avail
as follows:

<%@ Register Src="User Controls/MailForwardingGrid2.ascx"
TagName="MailForwardingGrid2"
   TagPrefix="uc1" %>
<%@ Reference Control="User Controls/MailForwardingGrid2.ascx" %>

I access user controls through the ASP namespace from web sites all
the time but the current failure is from a web application.

Advice?

-------------------------------------
DETAILS:
Here is the page from which I am attempting to access the user
control...

<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="DisplayForm.aspx.cs"
Inherits="WebApplication1.DisplayForm" %>

<%@ Register Src="User Controls/MailForwardingGrid2.ascx"
TagName="MailForwardingGrid2"
   TagPrefix="uc1" %>

<%@ Reference Control="User Controls/MailForwardingGrid2.ascx" %>

<%@ Register Assembly="DevExpress.Web.v8.1, Version=8.1.1.0,
Culture=neutral, PublicKeyToken=9b171c9fd64da1d1"
   Namespace="DevExpress.Web.ASPxPopupControl" TagPrefix="dxpc" %>

<%@ Register Assembly="AjaxControlToolkit"
Namespace="AjaxControlToolkit" TagPrefix="AjaxToolkit" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://
www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
   <title>Untitled Page</title>

</head>
<body>
   <form id="form1" runat="server">
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
   </form>
</body>
</html>

Here is the body of the user control:
namespace WebApplication1.User_Controls
{

   public partial class MailForwardingGrid2 :
System.Web.UI.UserControl
   {
       // NCR.Rads.MailForwarding.BusinessObjects.MailForwardInfoList
infoList =

NCR.Rads.MailForwarding.BusinessObjects.MailForwardInfoList.GetMailForwardInfoList(SourceContext,
SourceId);
       MailForwardInfoList objList;

       protected void Page_Load(object sender, EventArgs e)
       {
           //objList = MailForwardInfoList.GetMailForwardInfoList(1,
"p000196");
           objList =
MailForwardInfoList.GetMailForwardInfoList(SourceTypeID, SourceID);
           gvMailForwardingTemplate.DataSource = objList;
           gvMailForwardingTemplate.KeyFieldName = "InvoiceId";
           gvMailForwardingTemplate.DataBind();
       }

       private int sourceTypeID;
       public int SourceTypeID
       {
           get { return sourceTypeID; }
           set { sourceTypeID = value; }
       }

       private string sourceID;
       public string SourceID
       {
           get { return sourceID; }
           set { sourceID = value; }
       }

       //
       //protected void CslaDataSource1_SelectMethod(object sender,
Csla.Web.SelectObjectArgs e)
       //{
       //    e.BusinessObject = objList;

       //}
   }
Mark Fitzpatrick - 07 Apr 2008 20:44 GMT
Does the .ascx also have a codebehind? If so then use the namespace and
classname defined in the codebehind for the user control.

Hope this helps,
Mark Fitzpatrick
Microsoft MVP - Expression

> ASP namespace strong type access for dynamically loaded user control
> (web application, not web site)
[quoted text clipped - 119 lines]
>        //}
>    }

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.