如何在循环遍历集合时每行仅显示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);
}
试试这个:
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);
}
}