2015-09-16 26 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