How to add controls Dynamically in a asp.net page


How to add controls dynamically in a asp.net page using c# code

I am creating a row of controls dynamically which includes one dropdownlist, 12 textboxex and one checkbox as soon as user click on a Add New Row button.
Textboxes are kept for receiving inputs for the values of 12 months.
Here I am taking a panel and then I am adding the newly created table to this panel which serves as a placeholder for the table.
Inside the table I am adding these controls. Look the code it is very easy.


//Code Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
private int numOfColumns = 12;
public static int ctr = 0;
static Table table = new Table();

protected void Page_Load(object sender, EventArgs e)
{
table.ID = "table1";
Panel1.Controls.Add(table);
}
protected void btnAddNewRow_Click(object sender, EventArgs e)
{
numOfColumns = 12;

//Generate the Table based from the inputs

GenerateTable(numOfColumns);
}
private void GenerateTable(int colsCount)
{

ctr++;
// Now iterate through the table and add your controls
TableRow row = new TableRow();

row.ID = "row" + ctr;

TableCell cell1 = new TableCell();

DropDownList dl = new DropDownList();
dl.ID = "DrpDwnBrand" + ctr;
dl.AutoPostBack = false;


dl.Width = 135;
// Add the control to the TableCell

cell1.Controls.Add(dl);
// Add the TableCell to the TableRow

row.Cells.Add(cell1);

for (int j = 1; j <= colsCount; j++)
{
TableCell cell2 = new TableCell();
TextBox tb = new TextBox();

if (j == 1)
{
tb.ID = "txtJan" + ctr;
}
else if (j == 2)
{
tb.ID = "txtFeb" + ctr;
}
else if (j == 3)
{
tb.ID = "txtMar" + ctr;
}
else if (j == 4)
{
tb.ID = "txtApr" + ctr;
}
else if (j == 5)
{
tb.ID = "txtMay" + ctr;
}
else if (j == 6)
{
tb.ID = "txtJun" + ctr;
}
else if (j == 7)
{
tb.ID = "txtJul" + ctr;
}
else if (j == 8)
{
tb.ID = "txtAug" + ctr;
}
else if (j == 9)
{
tb.ID = "txtSep" + ctr;
}
else if (j == 10)
{
tb.ID = "txtOct" + ctr;
}
else if (j == 11)
{
tb.ID = "txtNov" + ctr;
}
else if (j == 12)
{
tb.ID = "txtDec" + ctr;
}


tb.Width = 37;

// Add the control to the TableCell

cell2.Controls.Add(tb);

// Add the TableCell to the TableRow

row.Cells.Add(cell2);

}
TableCell cell3 = new TableCell();

CheckBox cb = new CheckBox();
cb.Controls.Clear();
cb.ID = "chkSameAll" + ctr;
cb.AutoPostBack = false;
cb.Width = 10;

// Add the control to the TableCell

cell3.Controls.Add(cb);

// Add the TableCell to the TableRow

row.Cells.Add(cell3);

// Add the TableRow to the Table
table.Rows.Add(row);

}
}
//Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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">
<div>
<br />
<br />

<asp:Button ID="btnAddNewRow" runat="server" OnClick="btnAddNewRow_Click" Style="z-index: 100;
left: 66px; position: absolute; top: 287px" Text="Add New Row" Width="145px" />
<asp:Panel ID="Panel1" runat="server" Height="50px" Style="z-index: 102; left: 73px;
position: absolute; top: 8px" Width="125px">
</asp:Panel>

</div>
</form>
</body>
</html>


Comments

No responses found. Be the first to comment...


  • Do not include your name, "with regards" etc in the comment. Write detailed comment, relevant to the topic.
  • No HTML formatting and links to other web sites are allowed.
  • This is a strictly moderated site. Absolutely no spam allowed.
  • Name:
    Email: