Monday, July 30, 2012

.NET Mathematics


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;
  }
}


No comments:

Post a Comment