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

发布于 2024-09-05 02:42:54 字数 463 浏览 4 评论 0原文

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

我有这些表格,这就是它们的连接方式,

Period
Courses
Subjects
Chapters

我从 DropDownBox 中选择“时间段”,然后我希望该时间段内的所有课程都排列起来。 每门课程下面都有一个主题,下面是章节,典型的层次结构。

这些表格通过线性方式相互引用而链接在一起。

我尝试使用树视图来显示这一点,但不明白该怎么做。 我虽然可以使用

    标签并在运行时执行此操作。 Reapeter 或 datalist,可能吗?

使用 XAML 中的数据绑定还是代码中的数据绑定更好?

I'm trying to figure out the best practice to setup hierarchy data that i take from a database into some contoller that would show the hierachy.
Basicly this would look like a normal tree but when you press the items that are under "chapters" you get a link to another page.

I have these tables and this is the way they are connected

Period
Courses
Subjects
Chapters

I select Period from a DropDownBox and then i want all the courses in that period to line up.
Under each course would be the subject and under them are the chapers, typical hierarchy.

The tables are linked together with refrences to each other in linear way.

I have tried to use treeview to show this, but dont understand how to do it.
I though i could use <ul><il> tags and do it at runtime.
Reapeter or datalist, possible ?

Is it better to do this with databinding in XAML or in code ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

追我者格杀勿论 2024-09-12 02:42:54

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

foreach(navigationTable.Rows 中的 DataRow 行)
{

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

            if (最后深度 < 当前深度)
            {
                输出.Append("
    "); numUl++; } else if (lastDepth > currentDepth) { while (最后深度 > 当前深度) { 输出.Append("
"); numUl--; 最后深度--; } } 否则如果(最后深度> -1) { 输出.Append(""); } output.AppendFormat("
  • {3}链接; 最后深度 = 当前深度; } for (var i = 1; i <= numUl; i++) { 输出.Append("
  • "); }

    In my experience its best to to it with li and ul. You have more control of how everything is displayed. I got the query that gives me all the records and parent and depth. Then I loop throught this data and generated the list tags.

    foreach (DataRow row in navigationTable.Rows)
    {

                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>");
            }
    
    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文