动态生成html的<ul><li>列表项的算法

此算法用C#实现。在实际应用中,类似于树的数据常常需要把动态转换为html,列表项加入css和js可以用来实现多级导航菜单或树形菜单。1.在页面中加入 2.后台代码publicvoidLoadWholeMenue()        {            //生成树            TreeNoderoot = new TreeNode("roo
摘要由CSDN通过智能技术生成

此算法用C#实现。在实际应用中,类似于树的数据常常需要把动态转换为html,<ul><li>列表项加入css和js可以用来实现多级导航菜单或树形菜单。

1.在页面中加入 <div id="menu" runat="server"></div>

2.后台代码

public voidLoadWholeMenue()

        {

            //生成树

            TreeNoderoot = new TreeNode("root","root");

            for(int i = 0; i < 3;i++ )

            {

                TreeNodeinode = new TreeNode(i.ToString(),i.ToString());

                for(int j = 0; j < 3;j++ )

                {

                    TreeNodejnode = new TreeNode(i.ToString()+ j.ToString(), i.ToString() + j.ToString());

                    for(int m = 0; m < 3;m++ )

                    {

                        TreeNode mnode = new TreeNode(i.ToString() + j.ToString() +m.ToString(), i.ToString() + j.ToString() + m.ToString());

                        for (int n = 0; n < 3;n++ )

                        {

                            TreeNode nnode = newTreeNode(i.ToString() + j.ToString() + m.ToString()+n.ToString(),

                                i.ToString() +j.ToString() + m.ToString() + n.ToString());

                           mnode.ChildNodes.Add(nnode);

                        }

                       jnode.ChildNodes.Add(mnode);

                    }

                   inode.ChildNodes.Add(jnode);

                }

                root.ChildNodes.Add(inode);

            }

 

            //将树生成html字符串

            stringhtmlStr = "<ul>";

            foreach(TreeNode child inroot.ChildNodes)

            {

                htmlStr += "<li>" + child.Text +CreateMenueHtml(child)+"</li>";

            }

            htmlStr +=  "</ul>";

 

            //前台<div id="menu"runat="server"></div>接收后台数据

            menu_wwwzzjsnet.InnerHtml = htmlStr;

        }

 

        ///<summary>

        ///对每个孩子节点生成html

        ///</summary>

        ///<paramname="node"></param>

        ///<returns></returns>

        public string CreateMenueHtml(TreeNodenode)

        {           

            stringhtmlStr = "<ul>";

            if(node.ChildNodes.Count < 0)

            {

                return"";

            }

            else

            {

                foreach(TreeNode child innode.ChildNodes)

                {

                    htmlStr += "<li>" + child.Text +CreateMenueHtml(child) + "</li>";

                }

                htmlStr += "</ul>";

            }

            returnhtmlStr;

        } 


3.生成的html字符串为:

<ul>

    <li>0<ul>

        <li>00<ul>

            <li>000<ul>

                <li>0000<ul>

                </ul>

                </li>

                <li>0001<ul>

                </ul>

                </li>

                <li>0002<ul>

                </ul>

                </li>

            </ul>

            </li>

            <li>001<ul>

                <li>0010<ul>

                </ul>

                </li>

                <li>0011<ul>

                </ul>

                </li>

                <li>0012<ul>

                </ul>

                </li>

            </ul>

            </li>

            <li>002<ul>

                <li>0020<ul>

                </ul>

                </li>

                <li>0021<ul>

                </ul>

                </li>

                <li>0022<ul>

                </ul>

                </li>

            </ul>

            </li

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值