问题更新行c#

时间:2014-11-12 16:43:27

标签: c#

我有一个问题,我可以更新一行(以及它)或一次更新四个。

问题在于最后两行的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 
}

2 个答案:

答案 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没有更改,因此最后一行添加的最后一行将与循环创建的最后一行重复。