2011-09-08 42 views
0

我正在循環收集並生成一個htmltable。如何在循環收集時每行只顯示3個表格單元

我想只顯示每行最多3個表格單元格。

我需要一些關於該邏輯的幫助。

我的代碼到目前爲止每行顯示1項。

HtmlTable table = new HtmlTable(); 
HtmlTableRow row; 
HtmlTableCell cell; 

for(int x = 0; x < userList.Count; x++) 
{ 
    row = HtmlTableRow(); 

    cell = HtmlTableCell(); 

    // other stuff 

    row.Controls.Add(cell); 
    table.Controls.Add(table); 
} 

回答

0

我不明白你的問題是什麼?如果你想3個細胞,然後加入3個單元...

cell = HtmlTableCell(); 
//set cell 1 data 
row.Controls.Add(cell); 
cell = HtmlTableCell(); 
//set cell 2 data 
row.Controls.Add(cell); 
cell = HtmlTableCell(); 
//set cell 3 data 
row.Controls.Add(cell); 

,如果你想根據你在「其他東西」什麼樣的數據應用一些特定的邏輯,那麼你需要告訴我們更多關於數據

基於其他答案,我想我現在明白了。所以每個用戶控件都是一個單元格?如果是這樣,你可以做

row = HtmlTableRow(); 
int cellCount = 0; 
for(int x = 0; x < userList.Count; x++) 
{ 
    cell = HtmlTableCell(); 

    // other stuff 

    row.Controls.Add(cell); 

    cellCount++; 

    if(cellCount == 3) 
    { 
     cellCount = 0; 
     table.Controls.Add(row); 
     row = HtmlTableRow(); 
    } 
} 
0

你可以嘗試這樣的:

HtmlTable table = new HtmlTable(); 
HtmlTableRow row; 
HtmlTableCell cell; 

for(int x = 0; x < userList.Count; x++) 
{ 
row = HtmlTableRow(); 

cell = HtmlTableCell(); 


// other stuff 

row.Controls.Add(cell); 
if((x+1) % 3 == 0) 
{ 

table.Controls.Add(row); 
} 
} 
1

試試這個:

HtmlTable table = new HtmlTable(); 
HtmlTableRow row; 
HtmlTableCell cell; 

for(int x = 0; x < userList.Count; x++) 
{ 
      if(x%3 == 0) 
      { 
       row = new HtmlTableRow(); 
       table.Controls.Add(row); 
      } 
    cell = new HtmlTableCell(); 
    row.Controls.Add(cell); 
} 

for(int x = 0; x < userList.Count%3; x++) 
{ 
    cell = new HtmlTableCell(); 
    row.Controls.Add(cell); 
} 
相關問題