C# 如何使用c绑定SiteMap Treeview数据源#

C# 如何使用c绑定SiteMap Treeview数据源#,c#,asp.net,linq,entity-framework,sitemap,C#,Asp.net,Linq,Entity Framework,Sitemap,我的页面上有SiteMap数据源控件 <div id="content_inside"> <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" /> <asp:TreeView ID="TreeView1" ExpandDepth="2" </asp:TreeView> </div> 其中“GetAll”是从数据库中获取数

我的页面上有SiteMap数据源控件

<div id="content_inside">


    <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
         <asp:TreeView ID="TreeView1" ExpandDepth="2"
         </asp:TreeView>

</div>
其中“GetAll”是从数据库中获取数据的函数

public static List<movies> GetAll(this IEnumerable<movie> movie, ref moviescontext ctx)
{
    var movies= ctx.movie

                         .Select(s => new movies
                         {
                             MovieId= s.MovieID,
                             MovieName = s.MovieName,

                         }).ToList();

    return movies;
}

有什么建议吗?

您需要实现
IHierarchicalEnumerable
接口

您可以按如下方式执行此操作:

        public class MovieCollection : List<Movie>, IHierarchicalEnumerable
        {

            public IHierarchyData GetHierarchyData(object enumeratedItem)
            {
                return enumeratedItem as IHierarchyData;
            }

            public System.Collections.IEnumerator GetEnumerator()
            {
                throw new NotImplementedException();
            }
        }
公共类MovieCollection:List,IHierarchicalEnumerable
{
公共IHierarchyData GetHierarchyData(对象enumeratedItem)
{
返回enumeratedItem作为IHierarchyData;
}
public System.Collections.IEnumerator GetEnumerator()
{
抛出新的NotImplementedException();
}
}
然后添加现有电影,如下所示:

public static List<movies> GetAll(this IEnumerable<movie> movie, ref moviescontext ctx)
{
    var movies= ctx.movie

                         .Select(s => new movies
                         {
                             MovieId= s.MovieID,
                             MovieName = s.MovieName,

                         }).ToList();
            var movieCollection = new MovieCollection();
            movieCollection.AddRange(movies);

    return movieCollection;
}
publicstaticlist GetAll(此IEnumerable电影,ref moviescontext ctx)
{
var movies=ctx.movie
。选择(s=>新电影
{
MovieId=s.MovieId,
MovieName=s.MovieName,
}).ToList();
var movieCollection=新的movieCollection();
movieCollection.AddRange(电影);
返回电影集;
}

树视图通常用于显示嵌套数据,而当前数据仅包含一个级别

当您的数据只有一个级别时,不要使用层次控制。如果我以编程方式将xml写入web.sitemap文件,如何。这是更好的方法吗?
        public class MovieCollection : List<Movie>, IHierarchicalEnumerable
        {

            public IHierarchyData GetHierarchyData(object enumeratedItem)
            {
                return enumeratedItem as IHierarchyData;
            }

            public System.Collections.IEnumerator GetEnumerator()
            {
                throw new NotImplementedException();
            }
        }
public static List<movies> GetAll(this IEnumerable<movie> movie, ref moviescontext ctx)
{
    var movies= ctx.movie

                         .Select(s => new movies
                         {
                             MovieId= s.MovieID,
                             MovieName = s.MovieName,

                         }).ToList();
            var movieCollection = new MovieCollection();
            movieCollection.AddRange(movies);

    return movieCollection;
}