Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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
C# 我想将asp Treeview控件与LinqToSql一起使用_C#_Asp.net_Visual Studio 2010_Treeview - Fatal编程技术网

C# 我想将asp Treeview控件与LinqToSql一起使用

C# 我想将asp Treeview控件与LinqToSql一起使用,c#,asp.net,visual-studio-2010,treeview,C#,Asp.net,Visual Studio 2010,Treeview,我试图理解如何实现treeview控件——这一切看起来都非常复杂。但是,Treeview控件更合适 我有一个包含字段ID和ParentLevelID的SQL表 我在代码中添加了一个基本的Treeview控件: <asp:TreeView ID="tvLevels" runat="server"> </asp:TreeView> 如何将此信息转换为使用Treeview控件?这是我的解决方案。 在我的代码隐藏页面上: private

我试图理解如何实现treeview控件——这一切看起来都非常复杂。但是,Treeview控件更合适

我有一个包含字段ID和ParentLevelID的SQL表

我在代码中添加了一个基本的Treeview控件:

        <asp:TreeView ID="tvLevels" runat="server">
        </asp:TreeView>
如何将此信息转换为使用Treeview控件?

这是我的解决方案。 在我的代码隐藏页面上:

    private void BuildTree()
    {
        tvLevels .Nodes.Clear();
        _svsCentralDataContext = new SVSCentralDataContext();
        List<DataAccessLayer.Level> items = DataAccessLayer.Levels.GetLevels(_intSurveyId).ToList();

        List<DataAccessLayer.Level> rootItems = items.FindAll(p => p.ParentLevelId == null);

        foreach (DataAccessLayer.Level item in rootItems)
        {
            var tvi = new TreeNode(item.Description, item.Id.ToString(CultureInfo.InvariantCulture) );
            BuildChildNodes(tvi, items, item.Id);
            tvLevels.Nodes.Add(tvi);
        }
    }

    private void BuildChildNodes(TreeNode parentNode, List<DataAccessLayer.Level> items, int parentId)
    {
        List<DataAccessLayer.Level> children = items.FindAll(p => p.ParentLevelId == parentId).ToList();
        foreach (DataAccessLayer.Level item in children)
        {
            var tvi = new TreeNode(item.Description, item.Id.ToString(CultureInfo.InvariantCulture));
            parentNode.ChildNodes.Add(tvi);
            BuildChildNodes(tvi, items, item.Id);
        }
    }

不需要回复。我已经破解了。嘿,史蒂夫。很高兴你得到了答案=仅供参考-没关系;甚至鼓励!请随意发布您的解决方案作为答案,以更清楚地表明您的问题已经解决。
    private void BuildTree()
    {
        tvLevels .Nodes.Clear();
        _svsCentralDataContext = new SVSCentralDataContext();
        List<DataAccessLayer.Level> items = DataAccessLayer.Levels.GetLevels(_intSurveyId).ToList();

        List<DataAccessLayer.Level> rootItems = items.FindAll(p => p.ParentLevelId == null);

        foreach (DataAccessLayer.Level item in rootItems)
        {
            var tvi = new TreeNode(item.Description, item.Id.ToString(CultureInfo.InvariantCulture) );
            BuildChildNodes(tvi, items, item.Id);
            tvLevels.Nodes.Add(tvi);
        }
    }

    private void BuildChildNodes(TreeNode parentNode, List<DataAccessLayer.Level> items, int parentId)
    {
        List<DataAccessLayer.Level> children = items.FindAll(p => p.ParentLevelId == parentId).ToList();
        foreach (DataAccessLayer.Level item in children)
        {
            var tvi = new TreeNode(item.Description, item.Id.ToString(CultureInfo.InvariantCulture));
            parentNode.ChildNodes.Add(tvi);
            BuildChildNodes(tvi, items, item.Id);
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using SVSVoidSurveyDesigner.Database;

   namespace SVSVoidSurveyDesigner.DataAccessLayer
   {
   public class Levels
   {
    public static IEnumerable<Level> GetLevels(int intSurveyId)
    {
        var dataContext = new SVSCentralDataContext();


        var levels = (from l in dataContext.SVSSurvey_Levels where l.SurveyID == intSurveyId
                             select new Level
                             {
                                 Id = l.ID,
                                 SurveyId = l.SurveyID,
                                 UserCode = l.UserCode ,
                                 ExternalRef = l.ExternalRef ,
                                 Description = l.Description ,
                                 ParentLevelId = (l.ParentLevelID),
                                 LevelSequence = ( l.LevelSequence ),

                                 Active = Convert .ToBoolean( l.Active )
                             });

        return levels;
    }
}
    namespace SVSVoidSurveyDesigner.DataAccessLayer
    {
        public class Level
        {
        public int Id { get; set; }
        public int SurveyId { get; set; }
        public string UserCode { get; set; }
        public string ExternalRef { get; set; }
        public string Description { get; set; }
        public int? ParentLevelId { get; set; }
        public int? LevelSequence { get; set; }
        public bool Active { get; set; }
        }
    }