G
Greg James
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">
</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;
//}
}
(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">
</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;
//}
}