动态创建表格的问题 无论我输入什么数字都是一样的结果
protected void Button1_Click(object sender, EventArgs e){
int r=Convert.ToInt32(TextBox1.Text);
int c=Convert.ToInt32(TextBox2.Text);
HtmlTable tb = new HtmlTable();
tb.Border = 2;
tb.BorderColor = "blue";
tb.CellPadding = 2;
tb.CellSpacing = 3;
tb.Width = "50%";
HtmlTableRow row = new HtmlTableRow();
HtmlTableCell cell = new HtmlTableCell();
for (int r1 = 0; r1 < r; r1++)
{
for (int c1 = 0; c1 < c; c1++)
//cell.Controls.Add(new LiteralControl(" 1"));
row.Cells.Add(cell);
}
tb.Rows.Add(row);
this.Controls.Add(tb);
}
} --------------------编程问答--------------------
--------------------编程问答-------------------- 把tb.Rows.Add(row); 上移到循环里面。 --------------------编程问答-------------------- 刚才我试了,还是不行,只是一行,循环没问题,比如我输入一个3 一个4 出现12个1 --------------------编程问答-------------------- 把 HtmlTableCell cell = new HtmlTableCell();
for (int r1 = 0; r1 < r; r1++)
{
for (int c1 = 0; c1 < c; c1++) {
//cell.Controls.Add(new LiteralControl(" 1"));
row.Cells.Add(cell);
}
tb.Rows.Add(row);
}
this.Controls.Add(tb);
移到第二个FOR的前面,第一个FOR后面 --------------------编程问答-------------------- 上面说错了,应该是这样:
--------------------编程问答-------------------- 你一直在用同一个row和cell,当然出来的是一个了阿。。。。
for (int r1 = 0; r1 < r; r1++)
{
HtmlTableRow row = new HtmlTableRow();
for (int c1 = 0; c1 < c; c1++) {
HtmlTableCell cell = new HtmlTableCell();
//cell.Controls.Add(new LiteralControl(" 1"));
row.Cells.Add(cell);
}
tb.Rows.Add(row);
}
this.Controls.Add(tb);
改下就行了
HtmlTable tb = new HtmlTable();
for (int r1 = 0; r1 < r; r1++)
{
HtmlTableRow row = new HtmlTableRow();
for (int c1 = 0; c1 < c; c1++)
{
HtmlTableCell cell = new HtmlTableCell();
//cell.Controls.Add(new LiteralControl(" 1"));
row.Cells.Add(cell);
}
tb.Rows.Add(row);
}
this.Controls.Add(tb);
--------------------编程问答-------------------- 如果还不行的话
HtmlTable tb = new HtmlTable();
HtmlTableRow[] rows = new HtmlTableRow[r];
for (int r1 = 0; r1 < r; r1++)
{
HtmlTableRow row = new HtmlTableRow();
HtmlTableCell[] cells = new HtmlTableCell[c];
for (int c1 = 0; c1 < c; c1++)
{
HtmlTableCell cell = new HtmlTableCell();
cells[c1] = cell;
}
row.Cells.AddRange(cells);
rows[r1] = row;
}
tb.Rows.AddRange(rows);
this.Controls.Add(tb); --------------------编程问答-------------------- up --------------------编程问答-------------------- 请问下你for循环的时候 new对象吗? 这样是始终是一行一列 --------------------编程问答-------------------- protected void Button1_Click(object sender, EventArgs e)
{
int r=Convert.ToInt32(TextBox1.Text);
int c=Convert.ToInt32(TextBox2.Text);
HtmlTable tb = new HtmlTable();
tb.Border = 2;
tb.BorderColor = "blue";
tb.CellPadding = 2;
tb.CellSpacing = 3;
tb.Width = "50%";
HtmlTableRow row = null;
HtmlTableCell cell = null;
for (int r1 = 0; r1 < r; r1++)
{
row=new HtmlTableRow();
for (int c1 = 0; c1 < c; c1++)
{
cell=new HtmlTableCell();
cell.Controls.Add(new LiteralControl(" 1"));
row.Cells.Add(cell);
}
tb.Rows.Add(row);
}
this.Controls.Add(tb);
}
}
补充:.NET技术 , ASP.NET