我有一个问题,我可以更新一行(以及它)或一次更新四个。
问题在于最后两行的tbl.Rows.AddAt(tbl.Rows.Count - 1, tr1)
,注释表明将语句放在那里会发生什么。
将会有6个限制,但我无法弄清楚为什么我无法使用我已获得的代码多次更新一行。
for循环每行只允许四个单元格,不超过4行(不包括开始时的初始行)。
你能指出我正确的方向吗?
C#:
public void addRows_Click1(object sender, EventArgs e)
{
rmvRows.Visible = true;
// rows
for (int rowCount = 0; rowCount < 4; rowCount++ )
{
tr1 = new TableRow();
// cells
for (int cellCount = 0; cellCount < 4; cellCount++)
{
tc1 = new TableCell();
tb1 = new TextBox();
tb1.ID = "tbID" + cellCount.ToString();
tc1.Controls.Add(tb1);
tr1.Cells.Add(tc1);
}
tbl.Rows.AddAt(tbl.Rows.Count - 1, tr1);// will add four more rows
}
tbl.Rows.AddAt(tbl.Rows.Count - 1, tr1)// adds one one but no more
}
答案 0 :(得分:0)
tbl.Rows.AddAt(tbl.Rows.Count - 1, tr1)
只要它被调用,只会添加一行,因为tr1只是一行。
AddAt只允许在幕布位置添加一行。
循环中使用的AddAt应该可以正常工作。
希望有所帮助!
答案 1 :(得分:0)
这一行:
tbl.Rows.AddAt(tbl.Rows.Count - 1, tr1);// will add four more rows
在for
循环内,运行4次(从0到3):
for (int rowCount = 0; rowCount < 4; rowCount++ )
{
tr1 = new TableRow();
/* code omitted */
tbl.Rows.AddAt(tbl.Rows.Count - 1, tr1);// will add four more rows
}
该行本身每次调用时只添加一行,但它被调用4次。因此,在for
循环执行后,该表还有4行。
关于你的第二行:
tbl.Rows.AddAt(tbl.Rows.Count - 1, tr1)// adds one one but no more
这不在任何循环中,因此,与任何其他普通代码一样,它只执行一次。由于它只执行一次,因此只添加一行。
此外,由于tr1
循环后for
没有更改,因此最后一行添加的最后一行将与循环创建的最后一行重复。