我正在尝试使用.txt文件作为来源制作时间表,但我遇到了一些麻烦。我正在使用C#和ASP.NET创建一个网站。
这就是我得到的:
我努力将所有数据放在相同的5行中,但它似乎不可能,它们总是跳到不同的行。为了说清楚,这是我的期望:
以防万一,这是我写的代码,也许我搞砸了某个地方:
<tr><td>Name</td><td>Redacted</td><td>AR</td><td>email</td><td>+41 61 681 85 25</td><td><img src= "filepath to image folder" alt = "Cannot Find Image" height="100"></td></tr>
}
非常感谢任何帮助!
P.S。这里是.txt文件的样子(忽略非英文名称,这些是立陶宛语的学校科目):
答案 0 :(得分:0)
所以这里有一些事情要做。我只是将它自由化了,所以我确定那里有语法和其他错误,但是尝试一下,更改自己的代码等等。
{{1}}
答案 1 :(得分:0)
您可以使用Linq将文本文件拆分为已用逗号分割的行。然后,它只是循环所有项目的问题。它全部动态工作,因此您可以根据需要在工作日添加尽可能多的工作日和行。
//create a list with the rows already split by comma
List<string[]> allRows = File.ReadLines(Server.MapPath("/textfile1.txt")).Select(line => line.Split(',')).ToList();
//group by weekday
var sortedList = allRows.GroupBy(x => x[1]).ToList();
//get the max number of rows needed
var rowCount = sortedList.Max(x => x.Count()) + 1;
//create a new table
Table table = new Table();
//fill the table with rows and columns
for (int i = 0; i < rowCount; i++)
{
TableRow row = new TableRow();
for (int j = 0; j < (sortedList.Count * 2); j++)
{
//if it is the first row add the row headers
if (i == 0)
{
row.BackColor = Color.LightGray;
if (j % 2 == 1)
row.Cells.Add(new TableCell() { Text = sortedList[j /2].Key });
else
row.Cells.Add(new TableCell() { Text = "Nr" });
}
else
{
row.Cells.Add(new TableCell());
}
}
table.Rows.Add(row);
}
//loop all the weekdays
for (int i = 0; i < sortedList.Count; i++)
{
int j = 1;
//loop all the items within a weekday
foreach (var item in sortedList[i])
{
//the item[x] is based on the sample txt file, it is the row split by comma index
table.Rows[j].Cells[i * 2].Text = item[2];
table.Rows[j].Cells[(i * 2) + 1].Text = item[3];
j++;
}
}