2009-08-20 3 views
0

Я добавляю texboxes в таблицу (тип Table), но я не могу их добавить. Я не могу добавить более одной ячейки в каждую строку, любую идею?Таблица TextBoxes не отображается как deisred

TextBox[] tx = new TextBox[10]; 
     TableCell[] tc = new TableCell[10]; 

     TableRow[] tr = new TableRow[10]; 

     for (int i = 0; i < 10; i++) 
     { 
      tx[i] = new TextBox(); 
      tc[i] = new TableCell(); 
      tc[i].Controls.Add(tx[i]); 
     } 

     for (int i = 0; i < 10; i++) 
     { 
      tr[i] = new TableRow(); 
      tr[i].Cells.Add(tc[i]); 
     } 

     for (int i = 0; i < 10; i++) 
      Table1.Rows.Add(tr[i]); 

Он выходит, как 10 строк, каждая из которых только 1 клеток

+0

Что вы хотите, чтобы результат был? 1 строка с 10 ячейками? – BigBlondeViking

+0

нет, оно должно быть 10 X 10 –

+0

Вы храните текстовые поля, ячейки и строки, потому что вам нужен доступ к ним после того, как вы вставили их в таблицу? – BigBlondeViking

ответ

0

Клетки должны быть разными: мне нужно создать 100 ячеек не только 10!

TextBox[] tx = new TextBox[100]; 
     TableCell[] tc = new TableCell[100]; 

     TableRow[] tr = new TableRow[10]; 

     for (int i = 0; i < 100; i++) 
     { 
      tx[i] = new TextBox(); 
      tc[i] = new TableCell(); 
      tc[i].Controls.Add(tx[i]); 
     } 

     int x = 0; 
     for (int i = 0; i < 10; i++) 
     { 
      tr[i] = new TableRow(); 
      for (int j=0; j < 10; j++) 
      { 
       tr[i].Cells.Add(tc[x++]); 
      } 
     } 


     for (int i = 0; i < 10; i++) 
      Table1.Rows.Add(tr[i]); 
+0

его лучше сделать двумерным массивом, хотя –

1

Поскольку вам нужен внутренний цикл по этому вопросу:

for (int i = 0; i < 10; i++) 
{ 
    tr[i] = new TableRow(); 
    tr[i].Cells.Add(tc[i]); 
} 

Попробуйте это:

for (int i = 0; i < 10; i++) 
{ 
    tr[i] = new TableRow(); 
    for (int x = 0; x < 10; x++) 
    { 
     tr[i].Cells.Add(tc[x]); 
    } 
} 
+0

теперь я получил 10 ячеек, но только одну строку !! –

0

Ваши петли не настроены, чтобы дать вам таблицу 10x10.

Table table = new Table(); 
TableRow tr = null; 
TableCell tc = null; 
for (int i = 0; i < 10; i++) 
{ 
    tr = new TableRow(); 

    for (int j = 0; j < 10; j++) 
    { 
     tc = new TableCell(); 

     tc.Controls.Add(new TextBox()); 

     tr.Cells.Add(tc); 
    } 

    table.Rows.Add(tr); 
} 
Смежные вопросы