当前位置: 首页 > 编程语言 > C#

将linq sql结果放入分层结构,以便在无序列表中使用(对于jquery树)分享

时间:2023-04-11 03:05:36 C#

C#学习教程:将linqsql结果放入一个层次结构中以用于无序列表(对于jquery树)类dbml:全局>>类别>>子类别>>项目>>项目数据。我希望能够从全局表导航到树结构以获取项目-在项目数据表中显示标题。我有一个现有的控件,它使用IHierarchyData/IHierarchicalEnumerable扩展一个集合,遍历该集合以输出一个无序列表,然后我用jquery将其变成一棵树。我是根据分层sql数据中的返回未排序列表执行此操作是否有一种简单的通用方法可以将上述表结构中的数据放入分层结构中,以便我可以重用现有控件并传入不同的集合。您是否尝试过嵌套列表视图?我已经在几页中实现了这个解决方案。我直接使用ObjectDataSources而不是LinqDataSources来保持我的数据逻辑独立,但嵌套的EntitySets工作得很好。我认为让您感到困惑的是您不需要四张表来执行此操作。再次参见从分层sql数据返回无序列表。那里没有四张桌子。只有一个。您可以使用Union运算符将四个表混合在一起。http://weblogs.asp.net/zeeshanhirani/archive/2008/04/11/union-operator-part-12.aspx由于在这种情况下处理不同的类型,所以必须在每个类型上实现一个通用接口来使代码通用。基本方法是创建一个包含任何所需属性(例如DisplayText、ActionURL等)的接口,然后递归地迭代该集合。这是一个粗略的例子:publicinterfaceIDataItem{stringDisplayText{get;}stringActionUrl{得到;}boolHasChildren{得到;}IEnumerableGetChildren();}publicvoidCreateTree(HtmlTextWriterwriter,IEnumerablecollection){writer.WriteFullBeginTag("ul");foreach(集合中的var数据){writer.WriteFullBeginTag("li");writer.WriteBeginTag("a");writer.WriteAttribute("href",data.ActionUrl);writer.Write(HtmlTextWriter.TagRightChar);writer.Write(data.DisplayText);writer.WriteEndTag("a");如果(data.HasChildren)CreateTree(作家,data.GetChildren());writer.WriteEndTag("li");}作家。WriteEndTag("ul");您必须在树视图中包含的每个类型上实现接口。上面顶级类型和方法集合中的正确传递将向下遍历层次结构,创建所需的嵌套列表。以上就是C#学习教程:将linqsql结果放入层级结构,以供在无序列表中使用(适用于jquery树)的所有内容分享,如果对大家有用,需要详细了解C#学习教程,我希望大家注意——本文摘自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: