2012-01-01 2 views
1

Я знаю, в чем моя вина, но не знаю, как ее решить. Я пытаюсь создать таблицу asp: table из Code Behind.Генерация таблицы из кода

Стол должен быть шириной в 3 ячейки ... Я буду работать на пределе строки позже.

Вот мой код:

GallaryImage g = new GallaryImage(); 
     var images = g.GetAll(); 

     photos.Style.Add("width","100%"); 
     photos.Style.Add("border-style","none"); 

     TableRow tr = new TableRow(); 
     TableCell tc = new TableCell(); 
     tr.Cells.Add(tc); 
     tr.Cells.Add(tc); 
     tr.Cells.Add(tc); 

     int cntr = 0; 
     TableRow row = new TableRow(); 

     foreach (var image in images) 
     { 
      cntr++; 
      TableCell cell = new TableCell(); 
      Image i = new Image(); 
      i.ImageUrl = image.fullThumbPath; 
      cell.Controls.Add(i); 
      row.Cells.Add(cell); 
      if(cntr%3==0) 
      { 
       photos.Rows.Add(row); 
       row.Cells.Clear(); 
      } 
     } 
     if(row.Cells.Count > 0) 
      photos.Rows.Add(row); 
    } 

Моя проблема заключается в том, что мне нужно, чтобы создать новую строку в Foreach, только тогда, когда мне нужно новую строку ... т.е., когда мы добавили 3 клетки.

Я думал, что могу добавить строку в таблицу, а затем очистить строку, чтобы начать новую строку, но это не работает, поскольку я просто продолжаю очищать один и тот же объект строки ... и поэтому никогда не добавляю несколько строк ,

Может кто-нибудь помочь с моей логикой здесь?

ответ

2
GallaryImage g = new GallaryImage(); 
    var images = g.GetAll(); 
    photos.Style.Add("width","100%"); 
    photos.Style.Add("border-style","none");  

    int cntr = 0; 
    TableRow row = new TableRow(); 

    foreach (var image in images) 
    { 
     cntr++; 
     TableCell cell = new TableCell(); 
     Image i = new Image(); 
     i.ImageUrl = image.fullThumbPath; 
     cell.Controls.Add(i); 
     row.Cells.Add(cell); 
     if(cntr%3==0) 
     { 
      photos.Rows.Add(row); 
      row = new TableRow(); 
     } 
    } 
    if(row.Cells.Count > 0) 
     photos.Rows.Add(row); 
} 
+0

Ах, не очищайте ряд! Скорее сделай новый! Исправлено, спасибо! – Craig

Смежные вопросы