设置层次结构数据的最佳实践

时间:2010-06-09 10:40:43

标签: asp.net sql hierarchical-data

我正在尝试找出最佳做法,将我从数据库中获取的层次结构数据设置为一个可以显示层次结构的控制器。 基本上这看起来像普通的树,但是当你按下“章节”下面的项目时,你会得到另一个页面的链接。

我有这些表,这是他们连接的方式

Period
Courses
Subjects
Chapters

我从DropDownBox中选择Period,然后我希望该时段内的所有课程都排成一行。 在每个课程下都是主题,在它们下面是主题,典型的等级。

这些表格以线性方式相互引用。

我曾尝试使用treeview来展示这一点,但不明白该怎么做。 我虽然可以使用<ul><il>标签并在运行时执行此操作。 Reapeter或datalist,可能吗?

使用XAML或代码中的数据绑定更好吗?

1 个答案:

答案 0 :(得分:1)

根据我的经验,最好使用li和ul。您可以更好地控制所有内容的显示方式。我得到的查询给了我所有的记录和父母和深度。然后我遍历这些数据并生成列表标签。

  

foreach(navigationTable.Rows中的DataRow行)               {

            var currentDepth = int.Parse(row["depth"].ToString());

            if (lastDepth < currentDepth)
            {
                output.Append("<ul>");
                numUl++;
            }
            else if (lastDepth > currentDepth)
            {
                while (lastDepth > currentDepth)
                {
                    output.Append("</li></ul></li>");
                    numUl--;
                    lastDepth--;
                }
            }
            else if (lastDepth > -1)
            {
                output.Append("</li>");
            }

            output.AppendFormat("<li id=\"base\" class=\"class\">{3}<a>link</a>

            lastDepth = currentDepth;
        }

        for (var i = 1; i <= numUl; i++)
        {
            output.Append("</li></ul>");
        }