2012-01-01 12 views
1

私の誤りは分かっていますが、解決方法がわかりません。コードビハインドからasp:tableを生成しようとしています。コードからのテーブルの生成

テーブルは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); 
    } 

私の問題は、私は、我々は3つのセルを追加した新しい行...すなわちを、必要なときにのみ、foreachの中に新しい行を作成する必要があるということです。

私はテーブルに行を追加して新しい行を開始するために行をクリアすることができたと思ったが、それは動作しない。同じ行オブジェクトをクリアし続けるだけなので、 。

ここで自分のロジックを助けることができる人はいますか?

答えて

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

関連する問題