2015-09-16 2 views
0

Добавление таблицы динамически в коде позади, я могу сделать что-то вроде ...Динамически выбрать, какие данные строки добавляются в таблицу

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

но что, если порядок строк таблицы зависит от пользовательского ввода. ... так что для каждой итерации она либо будет а или В. Если а, проход т грести ... Если это в, продлить ряд б

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 

Ive пытался rows.addAt (индекс , ряд); но не работает, говорит, что индекс выходит за пределы допустимого диапазона. это даже правильный способ сделать это? спасибо за любые ответы

//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

Одна из проблем, я вижу, что каждый раз, когда вы создаете новую строку/ячейку вместо того, чтобы ссылки на существующую строку/ячейку. Если я правильно понял, ваша таблица имеет 2 строки, каждая из которых имеет 1 ячейку, и вы пытаетесь вырастить содержимое?

Вам нужно сделать что-то еще подобное. Обратите внимание, что я не проверял это:

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