<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<script runat="server">
protected int Rows
{
get
{
return ViewState["Rows"] != null ? (int)ViewState["Rows"] : 0;
}
set
{
ViewState["Rows"] = value;
}
}
protected int Columns
{
get
{
return ViewState["Columns"] != null ? (int)ViewState["Columns"] : 0;
}
set
{
ViewState["Columns"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
this.Rows = Int32.Parse(txtRows.Text);
this.Columns = Int32.Parse(txtCols.Text);
}
GreateDynamicTable();
}
private void GreateDynamicTable()
{
PlaceHolder1.Controls.Clear();
int tblRows = Rows;
int tblCols = Columns;
Table tbl = new Table();
PlaceHolder1.Controls.Add(tbl);
for (int i = 0; i < tblRows; i++)
{
TableRow tr = new TableRow();
for (int j = 0; j < tblCols; j++)
{
TableCell tc = new TableCell();
TextBox txtBox = new TextBox();
txtBox.Text = "RowNo:" + i + " " + "ColumnNo: " + " " + j;
tc.Controls.Add(txtBox);
tr.Cells.Add(tc);
}
tbl.Rows.Add(tr);
}
ViewState["DynamicTable"] = true;
}
protected void BtnGenerate_Click(object sender, EventArgs e)
{
GreateDynamicTable();
}
protected void btnPost_Click(object sender, EventArgs e)
{
}
protected override void LoadViewState(object savedState)
{
base.LoadViewState(savedState);
if (ViewState["DynamicTable"] == null)
GreateDynamicTable();
}
</script>
<body>
<form id="form1" runat="server">
<div>
Rows
<asp:TextBox ID="txtRows" runat="server"></asp:TextBox><br />
Cols
<asp:TextBox ID="txtCols" runat="server"></asp:TextBox><br />
<br />
<br />
<asp:Button ID="btnGenerate" runat="server" Text="Button" OnClick="BtnGenerate_Click" />
<br />
<br />
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
<br />
<br />
</div>
<asp:Button ID="btnPost" runat="server" Text="Button" OnClick="btnPost_Click" />
</form>
</body>
</html>