x.Level动态菜单

时间:2015-11-18 08:45:21

标签: c# asp.net

我的项目类别的数据表如下所示。

enter image description here

正如您所看到的,每个类别都有自己的ID和名称及其父级ID。主Cats的父ID是0。

我尝试了很多方法在我的页面上呈现它们但没有运气!

<ul class="list-group">
    <%
        DataSet Cats = new DataSet();
        DataSetTableAdapters.tblCategoryTableAdapter tblAdeptTblCategory = new DataSetTableAdapters.tblCategoryTableAdapter();
        tblAdeptTblCategory.FillBycParent(Cats.tblCategory, 0);
        for (int i = 0; i < Cats.tblCategory.Rows.Count; i++)
        {
            long ParentCatID = long.Parse(Cats.tblCategory.Rows[i]["cid"].ToString());
            Response.Write("<li class=\"list-group-item MainCat\">" + Cats.tblCategory.Rows[i]["cName"] + "<input type=\"button\" value =\"add\" class=\"btn pull-left btn-default btn-sm\" onclick=\"addpCats('AddCat', '" + Cats.tblCategory.Rows[i]["cid"] + "')\" />");
            DataSet SubCats = new DataSet();
            DataSetTableAdapters.tblCategoryTableAdapter tblAdptSubCatslist = new DataSetTableAdapters.tblCategoryTableAdapter();
            tblAdptSubCatslist.FillBycParent(SubCats.tblCategory, ParentCatID);
            Response.Write("<ul id=\"SubCat\" class=\"list-group SubCat\">");
            for (int j = 0; j < SubCats.tblCategory.Rows.Count; j++)
            {
                Response.Write("<li class=\"list-group-item\">" + SubCats.tblCategory.Rows[j]["cName"] + "<input type=\"button\" value =\"اعمال\" class=\"btn pull-left btn-default btn-sm\" onclick=\"addpCats('AddCat', '" + SubCats.tblCategory.Rows[j]["cid"] + "')\" /></li>");
            }

            Response.Write("</ul>");
            Response.Write("</li>"); 
        }
    %>
</ul>

正如您所看到的,如果我们事先知道水平深度,它只有2级或更多级别,对于更多级别,它需要太多编码。

1 个答案:

答案 0 :(得分:0)

您可以使用.net菜单控件进行更多示例,请参阅以下链接 http://www.codeproject.com/Tips/526004/Database-Driven-Dynamic-Menu-Control