如何使用EntityDataSource填充TreeView

时间:2011-01-05 08:03:51

标签: c# asp.net treeview

我使用MS SQL,EF 4和C#。

我在“类别”的SQL中有一个表,我需要在我的Asp.net页面填充一个TreeView。

我的问题是:

  • 1 - 如何填充TreeView?
  • 2 - 如何使用TreeView修改我的类别的层次结构?

注意:我使用“hierarchyid”SQL列!

谢谢你们的帮助!

    CREATE TABLE dbo.CmsCategories
(
    CategoryId          int             NOT NULL    IDENTITY (0,1)  -- Seed = 0 and Increment= 1
        CONSTRAINT PK_CmsCategories_CategoryId PRIMARY KEY,
    Title               nvarchar(40)    NOT NULL,
    MetaDescription     nvarchar(160)   NOT NULL,
    MetaKeyword         nvarchar(128)   NOT NULL,
    Summary             nvarchar(256)   NOT NULL,
    IsPublished         bit             NOT NULL
        CONSTRAINT DF_CmsCategories_IsPublished DEFAULT 1,  
    CategoryNode        hierarchyid     NOT NULL,
    CategoryNodeLevel AS CategoryNode.GetLevel()        
);

1 个答案:

答案 0 :(得分:1)

不幸的是,EF4还不支持HierarchyId。所以在这种情况下,你最好的选择可能是拥有一个存储过程来处理你的层次结构并将结果集返回给EF,EF4可以将其变成用户定义的复杂类型的集合,然后可以直接绑定到树视图控制。

如果您计划更新数据库中的层次结构,我将使用相同的方法:从EF调用存储过程以更新数据库中的层次结构。