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

本文关键字:显示 3个 单元格 表单 循环 遍历 集合 | 更新日期: 2023-09-27 18:08:05

我正在遍历一个集合,并生成一个htmltable。

我想每行最多显示3个单元格。

我需要一些逻辑上的帮助。

到目前为止,我的代码每行显示一个项目。

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个表单元格

试试这个:

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

我不明白你的问题是什么?如果您想要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);

如果你想基于"other stuff"中的数据应用一些特定的逻辑,那么你需要告诉我们关于该数据的更多信息

根据其他答案,我想我现在明白了。所以每个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();
   }
}

你可以这样尝试:

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