gpt4 book ai didi

c# - 使用 C# 构建具有动态行和列的 htmlTable

转载 作者:行者123 更新时间:2023-11-30 18:32:34 25 4
gpt4 key购买 nike

我有点进退两难。我有一个动态数量的项目,我想将它们转换成一个 htmlTable,这将允许我动态地确定我希望表格具有的列数和行数。

例如,假设我有一个包含 5 个项目的列表。我希望能够构建表格并将其动态呈现为 1x1、2x1、2x2 等。

这是我到目前为止能够想到的,但我不断收到超出范围的错误,这告诉我在添加项目列表之前我没有了解创建正确数量的单元格的逻辑。我在尝试弄清楚如何在考虑自定义列、行和动态列表的同时构建表格时陷入困境。

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

int desiredNumberOfColumns = 1; //How many Columns I want
int desiredNumberOfRows = 5; //How many Rows I want

int customColumn = desiredNumberOfColumns / rivers.Count;
int customRow = desiredNumerOfColumns % rivers.Count;

List<string> rivers = new List<string>(new string[]
{
"nile",
"amazon", // River 2
"yangtze", // River 3
"mississippi",
"yellow"
});


for(int i=0; i<(desiredNumberOfRows / rivers.Count); i++) //
{
row = new HtmlTableRow();
for(int j=0;j<(customRow / rivers.Count);++j)
{
row.Cells.Add(new HtmlTableCell(rivers[i]));
}
myTable.Rows.Add(row);
}

此示例应构建一个包含 5 行和 1 列的表格,如下所示:

___________
Row |Column
0 |nile
0 |amazon
0 |yangtze
0 |mississippi
0 |yellow
-----------

最佳答案

不要使用两个循环,使用除法和模组(这可能会提供有趣的值)尝试使用一个循环。

int totalObjects = rivers.Count;
int totalCells = desiredRows * desiredColumns;
HtmlTableRow newRow = new HtmlTableRow();
for( i = 0; i < totalCells; i++ )
{
// make a new row when you get the desired number of columns
// skip the first, empty row
if( i % desiredColumns == 0 && i != 0 )
{
myTable.Rows.Add( newRow );
newRow = new HtmlTableRow();
}
// keep putting in cells
if( i < totalObjects )
row.Cells.Add(new HtmlTableCell(rivers[i]));
// if we have no more objects, put in empty cells to fill out the table
else
row.Cells.Add(new HtmlTableCell(""));
}

关于c# - 使用 C# 构建具有动态行和列的 htmlTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18494566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com