我正在循环一个集合,并生成一个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);
}
答案 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);
}
}