Loading UserControl on another UserControl & assigning Properties of loaded UserControl
Parent UserControl (.ascx) UI:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MultiVarientModule.ascx.cs" Inherits="Modules.MultiVarientModule" %> <div id="parent" runat="server"> </div> |
Parent UserControl Code File (.cs) :
#region CONSTANTS const string CAROUSAL = "~/Modules/Carousal.ascx"; const string THREECOLUMNS = "~/Modules/ThreeColumn.ascx"; const string REGULAR = "~/Modules/Regular.ascx"; #endregion protected void Page_Load(object sender, EventArgs e) { switch(ControlName) { case "Carousel": parent.Controls.Add(LoadControl(CAROUSAL)); break; case "ThreeColumn": parent.Controls.Add(LoadControl(THREECOLUMNS)); break; case "Regular": { Regular reg = (Regular)LoadControl(REGULAR); reg.DisplayMode = ControlName; reg.DisplayItem = multiVarientItem; parent.Controls.Add(reg); break; } default: break; } } |
The above code is showing three different usercontrols to be added in parent div of another usercontrol.
For assigning value to properties of child usercontrol, we have to write mentioned code. Here "Regular" is one userControl.
Regular reg = (Regular)LoadControl(REGULAR); reg.DisplayMode = ControlName; reg.DisplayItem = multiVarientItem; parent.Controls.Add(reg); break; |
Loading the usercontrol and assigning it to Regular class
Regular reg = (Regular)LoadControl(REGULAR);
Assigning properties of regular class
reg.DisplayMode = ControlName;
reg.DisplayItem = multiVarientItem;
and finally adding the object to parent usercontrol.
Regular (.ascx) UI
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Regular.ascx.cs" Inherits="Modules.Regular" %> <div> <h4><asp:Literal ID="regularTitle" runat="server" /></h4> </div> <div class="leftInteriorTwoColumn" runat="server" id="LinkWithDescription"> <span sizcache="30" sizset="126"> <asp:Repeater ID="Repeater_LinkWithDescription" runat="server" OnItemDataBound="Repeater_LinkWithDescription_ItemDataBound"> <ItemTemplate> <a runat="server" id="articleLink" /> <div sizcache="30" sizset="127"> <div class="editorsContent" sizcache="30" sizset="127"> <p sizcache="30" sizset="127"> <span id="publishedDate" runat="server" class="pubdate" /> <span id="articleDescription" runat="server" /> <a id="moreLink" runat="server" class="moreLink">more</a> </p> </div> </div> </ItemTemplate> </asp:Repeater> </span> </div> |
Regular (.cs) Code File:
private string displayMode = String.Empty; public string DisplayMode { get { return displayMode; } set { displayMode = value; } } private Item displayItem; public Item DisplayItem { get { return displayItem; } set { displayItem = value; } } |
Comments
Post a Comment