Toon posts:

[ASP.NET2/SQL2005] XML Sitemap maken van tabel

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil gebruik gaan maken van de Treeview, menu en de sitemap path, en wil voor een goede werking hiervan het geheel voorzien van een goede XML sitemap. Nu heb ik m'n gehele menu in een tabel staan, en wel op deze manier:

MenuIDNameIsChildOf
1Planten0
2Accessoires0
3Tuinplanten1
4Wintervast3
5Binnenplanten1


0 in "IsChildOf" houdt in dat er geen ouders zijn. (Hoofd element).

Nu zou ik graag d.m.v. een ASP.NET pagina hier een XML structuur van willen maken, zo dat de genoemde componenten hier wat mee kunnen. Via de ISAPI ReWrite kan ik het systeem dan wel laten denken dat het een XML bestand is. De vraag is, hoe ga ik dat aanpakken. In ASP zou het me wel (heel omslachtig) lukken, maar in .NET heb ik te weinig ervaring (wel enkele cursussen gevolgd...). Het liefst zou ik zelfs gebruik maken van caching, waarschijnlijk door het object in de application te zetten, en 1x per dag te laten reloaden. Maargoed, daar gaat het nu even niet over.

Heb ook al op Google gezocht, maar niets kunnen vinden.

  • Niek.NET
  • Registratie: Oktober 2005
  • Laatst online: 12:55
Even googlen naar 'SiteMapProvider', hiermee kun je zelf een sitemap genereren adhv je database tabel

Ik vond oa: De MSDN documentatie en Een 'tutorial'

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 08:43

sopsop

[v] [;,,;] [v]

Asp.net binnen VS2005 heeft de sitemappathcontrol standaard ingebouwd. Wellicht kun je daar wat mee. Hier wat meer uitleg: http://www.ondotnet.com/p...13/site_nav_aspnet20.html

Verwijderd

Topicstarter
Ik heb een interessant artikel gevonden op http://msdn2.microsoft.com/en-us/library/aa479320.aspx.
Hierin wordt een stored procedure beschreven die de inhoud van m'n tabel als een soort NodeTree terug zou geven aan de SiteMapProvider. Dat laatste stukje staat echter niet beschreven.

Hebben jullie zo een idee hoe dit bedoeld zou zijn? De stored procedure kan ik netjes runnen, ik heb een TreeView getekend, en een SQLDataSource aangemaakt die de betreffende stored procedure execute. Maar nu....? Enige ervaring?

Verwijderd

Topicstarter
D.m.v. de SqlSiteMapProvider is het me nu gelukt en werkt alles goed. Enige probleem is nog even dat de provider en/of de Treeview niet te sorten is. Als je bij het uitvoeren van de query een andere sort dan op ID doet, krijg je een error dat hij de parent-child relaties niet meer snapt.

Iemand suggesties. Op internet is niets te vinden, alleen iemand met hetzelfde probleem: http://www.sitepoint.com/forums/showthread.php?t=410831

Verwijderd

Topicstarter
Na wat klooien zelf opgelost. Je hoeft alleen de Stored Procedure proc_GetSiteMap aan te passen:


ALTER PROCEDURE [dbo].[proc_GetSiteMap] AS SELECT [ID], [Title],
[Description], [Url], [Roles], [Parent] FROM [SiteMap] ORDER BY [Parent], [Title]


Dit i.p.v. de ORDER BY [ID]. Belangrijk is namelijk dat hij eerst de parent node tegen komt, en dan pas de child nodes. Dat is in dit geval zo, en in dit geval is zelfs de "bug" opgelost dat een child node ID hoger moet zijn dan de parent node id.

Me => :*)
Pagina: 1