De multe ori m-a enervat ca trebuia sa codez cite un site map pentru o tabela de referinta pentru alta, (de genul Categorie (ID, Nume) pentru Carti(ID, IDCategorie, Nume))
Asa ca m-am decis sa fac un minimalist StaticSiteMapProvider pentru o tabela – care sa enumere doar intrarile in tabela respectiva
Implementarea este pentru OLEDB- dar inlocuind OleDBConnection si OleDbCommand cu echivalentele lor, ar trebui sa fie OK
In web.config ar trebui puse doar urmatoarele:
La
<configuration>
<connectionStrings>
<add name=”nume_conexiune” connectionString=”conexiune” />
</connectionStrings>
Iar la
<configuration>
<system.web>
<siteMap enabled=”true”>
<providers>
<add name=”AspNetSqlTable_NumeTabela” type=”SQLTableProvider” connectionStringName=”nume_conexiune” tableName=”nume_tabela” tableDisplayName=”cum sa apara numele root” tableURL=”catre_ce_url_sa_pointeze_cind_se_apasa_pe_root.aspx” DataTextField=”numele cimpului de afisat” DataValueField=”numele cimpului de id” URL=”catre_ce_url_sa_plece_valorile.aspx” QueryString=”care_sa_fie_parametrul_de_query_string_dinainte_de_id”/>
Iar daca vrem o integrare cu Web.Sitemap, atunci scriem usor:
<siteMap xmlns=”http://schemas.microsoft.com/AspNet/SiteMap-File-1.0″ >
<siteMapNode title=”ROOT”>
<siteMapNode provider=”AspNetSqlTable_NumeTabela” >
</siteMapNode>
</siteMapNode>
</siteMap>
Si cam atit…
Ce am observat ca trebuie este neaparat implementarea FindSiteMapNode – asta ca sa stie unde se afla pagina…
Puteti downloada de aici
http://serviciipeweb.ro/iafblog/content/binary/SQLTableProvider.zip
Pentru referinta, aici sunt surse de la alti SiteMap Provider:
Cel oficial(XML):
http://download.microsoft.com/download/a/b/3/ab3c284b-dc9a-473d-b7e3-33bacfcc8e98/ProviderToolkitSamples.msi
SQL Site Map Provider – un exemplu complet, cu o tabela care imita structura Web.SiteMap
File System-Based Site Map Provider – un exemplu care ia fisierele de pe site: http://aspnet.4guysfromrolla.com/articles/030806-1.aspx