Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在asp.net中递归绑定无序列表_Asp.net_C# 4.0 - Fatal编程技术网

在asp.net中递归绑定无序列表

在asp.net中递归绑定无序列表,asp.net,c#-4.0,Asp.net,C# 4.0,我有一个数据包,如下所示: id menuname url parentid 1 Home ~/Home.aspx NULL 2 Product ~/products.aspx NULL 3

我有一个数据包,如下所示:

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
因此,我想根据上面的数据表将菜单项生成一个无序列表,这样带有null
parentid
的项应该是第一级菜单 其他子菜单将基于其
parentid
,如下所示:

<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>
问题是我不明白怎么做

试试这个

var dtrow = dt.Select("parentid is null or parentid=''");
    var str = new StringBuilder();
    str.Append("<ul class='menu'>");
    if (dtrow.Any())
    {
        foreach (DataRow row in dtrow)
        {
            str.AppendFormat("<li><a href='{0}'>{1}</a></li>", row["url"].ToString(), row["menuname"].ToString());
            var crow = dt.Select("parentid='" + row["id"] + "'");
            if (crow.Any())
            {
                 str.Append("<ul>");
                 foreach (DataRow drow in crow)
                 {
                     var ccrow = dt.Select("parentid='" + drow["id"] + "'");
                     if (ccrow.Any())
                     {
                         str.AppendFormat("<li><a href='{0}'>{1}</a>", drow["url"], drow["menuname"]);
                         str.Append("<ul>");
                         foreach (DataRow dcrow in ccrow)
                         {
                             str.AppendFormat("<li><a href='{0}'>{1}</a></li>", dcrow["url"], dcrow["menuname"]);
                         }
                         str.Append("</ul>");
                         str.Append("</li>");

                     }
                     else
                     {
                         str.AppendFormat("<li><a href='{0}'>{1}</a></li>", drow["url"], drow["menuname"]);
                     }

                 }
                 str.Append("</ul>");

            }

        }

    }
    else
    {
        foreach (DataRow row in dt.Rows)
        {
            str.AppendFormat("<li><a href='{0}'>{1}</a></li>", row["url"], row["menuname"]);
        }
    }
    str.Append("</ul>");
var dtrow=dt.Select(“parentid为null或parentid=”);
var str=新的StringBuilder();
str.Append(“”);