循环遍历集合时,如何每行仅显示3个表格单元格

时间:2011-09-08 16:34:22

标签: c# asp.net

我正在循环一个集合,并生成一个htmltable。

我想每行最多只显示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);
}

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分: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);

如果您想根据“其他内容”中的数据应用某些特定逻辑,那么您需要告诉我们有关该数据的更多信息

根据其他答案,我想我现在明白了。那么每个Usercontrol都是一个单元格?如果是这样,你可以做

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();
   }
}

答案 2 :(得分: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);
}
}