当前位置:  开发笔记 > 编程语言 > 正文

使用asp.net渲染无序列表

如何解决《使用asp.net渲染无序列表》经验,为你挑选了0个好方法。

我需要使用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
      • TUBE
      • LCD
      • PLASMA
    • PORTABLE ELECTRONICS
      • MP3 PLAYERS
        • FLASH
      • 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("
    "); }

使用上面的代码,我的无序列表看起来像这样.


谢谢.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有