作者:帆侮听我悄悄说星星 | 2023-08-08 10:40
我需要使用asp.net/C#渲染一个无序列表,其中包含从数据库中获取的数据.我的数据看起来像这样.
id Name Depth
1 ELECTRONICS 0
2 TELEVISIONS 1
3 Tube 2
4 LCD 2
5 Plasma 2
6 Portable electronics 1
7 MP3 Player 2
8 Flash 3
9 CD Players 2
10 2 Way Radio 2
使用上面的示例数据,我需要根据深度呈现无序列表,格式如下
- ELECTRONICS
- TELEVISIONS
- PORTABLE ELECTRONICS
- MP3 PLAYERS
- CD PLAYERS
- 2 WAY RADIOS
上面的数据只是一个示例,我有一个巨大的记录集,必须转换为无序列表.有人可以给我一个如何实现这一点的想法吗?
更新:
我已经更新了我的代码,生成无序列表到下面.
int lastDepth = -1;
int numUL = 0;
StringBuilder output = new StringBuilder();
foreach (DataRow row in ds.Tables[0].Rows)
{
int currentDepth = Convert.ToInt32(row["Depth"]);
if (lastDepth < currentDepth)
{
if (currentDepth == 0)
{
output.Append("
");
output.AppendFormat("- root
- {0}", row["name"],row["id"]);
}
else
{
output.Append("
");
if(currentDepth==1)
output.AppendFormat("- {0}", row["name"]);
else
output.AppendFormat("
- {0}", row["name"], row["id"]);
}
numUL++;
}
else if (lastDepth > currentDepth)
{
output.Append("
");
if(currentDepth==1)
output.AppendFormat("- {0}", row["name"]);
else
output.AppendFormat("
- {0}", row["name"], row["id"]);
numUL--;
}
else if (lastDepth > -1)
{
output.Append("
");
output.AppendFormat("- {0}", row["name"],row["id"]);
}
lastDepth = currentDepth;
}
for (int i = 1; i <= numUL+1; i++)
{
output.Append("
");
}
使用上面的代码,我的无序列表看起来像这样.
谢谢.