如何在asp.net中递归绑定无序列表 [英] How to bind unordered list recursively in asp.net

查看:92
本文介绍了如何在asp.net中递归绑定无序列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好专家,我的数据如下:



id         menuname                      url                      
  parentid

1        家居NBSP;                       〜/ Home.aspx                  
  NULL    

2        产品与NBSP;                       〜/ products.aspx                 NULL


3        服务及NBSP;                   〜/ services.aspx                 NULL    

4         ERP                            〜/ erp.aspx                  
  2

5         HRM                            〜/ hrm.aspx                  
  4

7        薪资                        〜/ payroll.aspx                 4

8        程序设计及NBSP;                   〜/ programming.aspx             3

9        广告及NBSP;                   〜/ advert.aspx                 3

10        电视广告            〜/ tvadvert.aspx                 9

11        广播广告                〜/ radioadvert.aspx             9

........

........

$


所以我想根据上面的数据表生成一个无序列表的菜单项,这样那些空的parentid项应该是第一级菜单

,其他菜单项将是基于他们的parentid的子菜单如下:

Hello experts, I have a datatble as below:

id         menuname                      url                         parentid
1        Home                        ~/Home.aspx                    NULL    
2        Product                        ~/products.aspx                NULL
3        Services                    ~/services.aspx                NULL    
4        ERP                            ~/erp.aspx                    2
5        HRM                            ~/hrm.aspx                    4
7        Payroll                        ~/payroll.aspx                4
8        Programming                    ~/programming.aspx            3
9        Advertising                    ~/advert.aspx                3
10        Television Advert            ~/tvadvert.aspx                9
11        Radio Advert                ~/radioadvert.aspx            9
........
........


So i want to generate menu item into an unordered list based on the datatable above such that the items with null parentid should be the first level menu
and others will be submenus based on their parentid like so:

< ul class =" menu">

    < li>< a href =" home.aspx"> Home< / a>< / li>

    < li>< a href =" produc.aspx"> Product< / a>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < ul>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < li>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < a href =" erp.aspx"> ERP< / a>    

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < ul>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < li>< a href =" hrm.aspx"> HRM< / a>< / li>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < li>< a href =" payroll.aspx"> Payroll< / a>< / li>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < / ul>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < / li>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < / ul>

    < / li>

    < li>< a href =" services.aspx">服务< / a>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < ul>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < li>< a href =" programming.aspx">广告< / a>< / li>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < li>< a href =" advert.aspx">编程< / a>< / li>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < / ul>

    < / li>



     .....等

< / ul>



以下是我看似不完整的代码:



<ul class="menu">
    <li><a href="home.aspx">Home</a></li>
    <li><a href="produc.aspx">Product</a>
            <ul>
                <li>
                <a href="erp.aspx">ERP</a>    
                    <ul>
                        <li><a href="hrm.aspx">HRM</a></li>
                        <li><a href="payroll.aspx">Payroll</a></li>
                    </ul>
                </li>
            </ul>
    </li>
    <li><a href="services.aspx">Services</a>
            <ul>
                <li><a href="programming.aspx">Advertising</a></li>
                <li><a href="advert.aspx">Programming</a></li>
            </ul>
    </li>

    .....etc
</ul>

below is my code that seem incomplete:

    public static String AddToList()
    {


        DataTable table = new DataTable();
        table = GetMenus();

        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        foreach (DataRow row in table.Rows())
        {
            string parentId = row["parentmenuId"].ToString();
            //string url = Server.MapPath(m.Url);
            if (string.IsNullOrEmpty(parentId))
            {
                sb.Append(String.Format("<ul class=\"menu\"><li><a href=\"{0}\">{1}</a></li></ul>", row["Url"].ToString(), row["Description"].ToString()));
            }

        }

        return sb.ToString();

    }




   这将获得所有顶级菜单,但所有其他努力获得子菜单不起作用。请帮我解决。



    提前致谢

    This gets all top menu but all other effort to get submenu doesnt work. Pls help me out.

    Thanks in advance

推荐答案

有关ASP.NET的问题,请使用
ASP.NET论坛
 请。

亲切的问候


这篇关于如何在asp.net中递归绑定无序列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆