更新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 
}

更新c#行时出现问题

此行:

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 

这是在任何循环之外的,所以,就像任何其他普通代码一样,它只执行一次。由于它只执行一次,所以只添加一行。

此外,由于tr1for循环之后没有改变,所以最后一行添加的最后一行将是循环创建的最后一行将的副本。

tbl.Rows.AddAt(tbl.Rows.Count - 1, tr1)

无论调用哪一行,都只添加一行,因为tr1只是一行。

AddAt将只允许在幕墙位置添加一行。

循环中使用的AddAt应该可以正常工作。

希望能有所帮助!