2015-09-16 27 views
0

在代码中添加动态表后面我可以这样做......动态选择哪一行数据添加到表

TableRow row = new TableRow(); 
TableCell cell1 = new TableCell(); 
cell1.Text = "blah blah blah"; 
row.Cells.Add(cell1); 
myTable.Rows.Add(row); 

但如果表中的行的顺序取决于用户输入。 ...所以对于每次迭代它要么将是A或B.如果是A,延伸排个...如果是b,延伸b行

after 1st iteration 
A: 123 

after 2nd iteration 
A: 123 
B: abc 

after 3rd iteration 
A: 123456 
B abc 

after 4th iteration 
A: 123456789 
B: abc 

伊夫试图rows.addAt(索引,row);但它不工作,说索引超出范围。这是甚至正确的方式来做到这一点?谢谢任何回复

//forloop 
    { 
    if(A) 
    { 
    TableRow row = new TableRow(); 
    TableCell cell1 = new TableCell(); 
    cell1.Text = "blah blah blah"; 
    row.Cells.Add(cell1); 
    myTable.Rows.AddAt(0, row); 
    } 

    if(B) 
    { 
    TableRow row = new TableRow(); 
    TableCell cell1 = new TableCell(); 
    cell1.Text = "blah blah blah"; 
    row.Cells.Add(cell1); 
    myTable.Rows.Add(1, row); 
    } 
+0

所以,如果我理解正确的话,你想改变行A或行B的值,或者您添加的行和最近的行必须是0和1? – Gnqz

+0

如何使用排序? http://stackoverflow.com/questions/9107916/sorting-rows-in-a-data-table –

+0

@Gnqz在每次迭代后,我想扩展A行或B行的数据......将新值添加到行的末尾......也许我应该在单元格级别完成它并将该单元格添加到行中? – John

回答

0

我可以看到的一个问题是,每次创建新行/单元而不是获取现有行/单元的引用时。如果我理解正确,你的表有两行,每行都有一个单元,并且你正在尝试增长内容?

你需要做更多这样的事情。请注意,我没有测试过这一点:

TableCell existingCell = myTable.Rows[0].Cells[0]; 
existingCell.Text += "NewData"; 

或者,如果你想新单元添加到现有的行会是类似的:

TableRow existingRow = myTable.Rows[0]; 
TableCell newCell = new TableCell(); 
newCell.Text = "NewData"; 
existingRow.add(newCell); 
+0

这不起作用.rows()在这种情况下不能用作方法。尽管感谢 – John

+0

对不起,最近我一直在做很多VBA,而且非常相似。 .Rows()将返回一个TableRowCollection。您可以使用[0]从该集合中获取元素。我更新了示例代码。 – Ian