StaticSiteMapProvider si tabele

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

Leave a Reply

Your email address will not be published. Required fields are marked *