更新c#行时出现问题
本文关键字:问题 更新 | 更新日期: 2023-09-27 18:30:06
我有一个问题,我可以一次更新一行(仅此而已)或四行。
问题是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
}
此行:
tbl.Rows.AddAt(tbl.Rows.Count - 1, tr1);// will add four more rows
在运行4次(从0到3)的for
循环内:
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
循环之后没有改变,所以最后一行添加的最后一行将是循环创建的最后一行将的副本。
tbl.Rows.AddAt(tbl.Rows.Count - 1, tr1)
无论调用哪一行,都只添加一行,因为tr1只是一行。
AddAt将只允许在幕墙位置添加一行。
循环中使用的AddAt应该可以正常工作。
希望能有所帮助!