Wednesday, January 12, 2011

Add and Remove Web User Control Dynamically

webuser control ascx page :

AddTier.ascx
TextBox-> asp:TextBox runat="server" ID="txt"


page for dynamically add this control :

TestConrol.aspx

Button -> asp:Button runat="server" ID="btnSaleTier" Text="Add Tier" OnClick="btnSaleTier_Click"
Button -> asp:Button runat="server" ID="btnSaleRemove" Text="Remove Last Tier" OnClick="btnSaleRemove_Click"

Panel : asp:Panel runat="server" ID="pnlAddSaleTier"



TestControl.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{

int num = 0;
if (ViewState["Counter"] != null)
{
num = (int)ViewState["Counter"];
}
else
{
ViewState["Counter"] = 0;
}
for (int j = 0; j < num; j++)
{
Control cl = LoadControl("~/AddTier.ascx");

cl.ID = "c" + j;
if (pnlAddSaleTier.FindControl(cl.ID) != null)
{

}
else
{
pnlAddSaleTier.Controls.Add(cl);
}
}
if (ViewState["Remove"] == "1")
{
pnlAddSaleTier.Controls.RemoveAt(Convert.ToInt32(ViewState["Counter"]));
}

}

protected void btnSaleTier_Click(object sender, EventArgs e)
{
ViewState["Counter"] = (int)ViewState["Counter"] + 1;
Page_Load(Page, new EventArgs());
}

protected void btnSaleRemove_Click(object sender, EventArgs e)
{

ViewState["Remove"] = "1";
Page_Load(Page, new EventArgs());
ViewState["Remove"] = "0";
ViewState["Counter"] = (int)ViewState["Counter"] - 1;
}