2011-01-05 5 views
0

J'utilise MS SQL, EF 4 et C#.Comment remplir un TreeView en utilisant EntityDataSource

J'ai une table dans SQL pour "Catégories" et j'ai besoin de peupler un TreeView dans ma page Asp.net.

Ma question sont:

  • 1 - Comment puis-je remplir le TreeView?
  • 2 - Comment puis-je utiliser TreeView pour modifier la hiérarchie de mes catégories?

REMARQUE: j'utilise des colonnes SQL "hierarchyid"!

Merci les gars pour votre aide!

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()   
); 

Répondre

1

Malheureusement, EF4 ne prend pas en charge HierarchyId (encore). Donc, dans ce cas, votre meilleur pari serait probablement d'avoir une procédure stockée qui traite votre hiérarchie et renvoie un ensemble de résultats à EF que EF4 peut transformer en une collection de type complexe défini par l'utilisateur qui peut ensuite être lié directement à la contrôle TreeView.

Si vous envisagez de mettre à jour votre hiérarchie dans la base de données, j'utiliserais la même approche: appelez une procédure stockée depuis EF pour mettre à jour votre hiérarchie dans la base de données.

+0

Salut, merci J'évalue votre idée. Qu'en est-il de l'utilisation de ADO.NET brut? Un exemple ici http://www.thereforesystems.com/working-with-sql-server-hierarchyid-data-type-in-net-application/ – GibboK

+0

@GibboK: oui, ADO.NET brut est l'autre alternative, c'est sûr . J'espère que EF5 aura le support pour toutes les fonctionnalités de SQL Server 2008! Serait gentil ... –

+0

Une idée quand EF 5 viendra? Merci et bonne journée! – GibboK

Questions connexes