SiteMapPath con pagine dinamiche
pierpaolo1982
pierpaolo1982 non è online. Ultima attività: 30/04/2009 2.37.49pierpaolo1982
il 14 ottobre 2008 alle 19.48
www.digeltech.com | 61 messaggi dal 10 settembre 2007
Salve,
ho un sito con un catalogo con delle pagine dinamiche.
Ogni prodotto appartiene ad una sotto-categoria e ad una categoria.

purtroppo non posso mappare i prodotti nel file web.sitemap, dove sono gia' mappati le categorie e le sotto categorie.

quando clicco su un prodotto il percorso (home > categoria > sottocategoria) ovviamente sparice poichè non è mappato nel web.sitemap.
come ovviare a tutto ciò?

W la Foca e che Dio la benedoca
RE: SiteMapPath con pagine dinamiche
PeppeDotNet
PeppeDotNet non è online. Ultima attività: 05/07/2009 17.20.20PeppeDotNet
il 14 ottobre 2008 alle 20.09
Ciao !
Devi crearti un Site Map Data Provider custom.
Leggiti questo:

http://www.peppedotnet.it/Articoli/CustomSiteMapProvider.aspx

Marchi Giuseppe
http://www.peppedotnet.it
RE: SiteMapPath con pagine dinamiche
pierpaolo1982
pierpaolo1982 non è online. Ultima attività: 30/04/2009 2.37.49pierpaolo1982
il 15 ottobre 2008 alle 12.04
www.digeltech.com | 61 messaggi dal 10 settembre 2007
Testo Subito... Grazie!!

W la Foca e che Dio la benedoca
RE: SiteMapPath con pagine dinamiche
pierpaolo1982
pierpaolo1982 non è online. Ultima attività: 30/04/2009 2.37.49pierpaolo1982
il 15 ottobre 2008 alle 16.35
www.digeltech.com | 61 messaggi dal 10 settembre 2007
ciao PeppeDotNet,
Il tuo codice quasi quasi mi funziona, dico quasi quasi perchè il sitemapPath mi funziona fino al 2° livello. non riesco a trovare il problema.
Sai quale potrebbe essere il motivo? oppure hai qualche link da suggerirmi?

Ecco il codice che ho modificato rispetto alla tua soluzione:

SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
SiteMapNode childNode = new SiteMapNode(this,
reader["IDCategoria"].ToString(),
this.rootNode.Url + "" + reader["IDCategoria"].ToString()+ "/"+reader["Categoria"].ToString()+".aspx",
reader["Categoria"].ToString(),
reader["Categoria"].ToString());
//Adds child node to root node

AddNode(childNode, this.rootNode);

SqlConnection con2 = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnessioneUnica"].ConnectionString);
con2.Open();
SqlCommand sottocat = new SqlCommand("SELECT IDSottoCategoria, NomeSottoCategoria FROM sottocategoria WHERE IDCategoria = " + reader["IDCategoria"], con2);
SqlDataReader readerCat = sottocat.ExecuteReader();

if (readerCat.HasRows)
{
while (readerCat.Read())
{
SiteMapNode childNodeCat = new SiteMapNode(this,
readerCat["IDSottoCategoria"].ToString(),
this.rootNode.Url + readerCat["IDSottoCategoria"].ToString() + "/" + readerCat["NomeSottoCategoria"].ToString() + ".aspx",
readerCat["NomeSottoCategoria"].ToString(),
readerCat["NomeSottoCategoria"].ToString());
//Adds child node to root node

AddNode(childNodeCat, childNode);

SqlConnection con3 = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnessioneUnica"].ConnectionString);
con3.Open();
SqlCommand prodotti = new SqlCommand("SELECT IDProdotto, NomeProdotto FROM prodotti WHERE IDSottoCategoria = " + readerCat["IDSottoCategoria"], con3);
SqlDataReader readerProdotti = prodotti.ExecuteReader();

if (readerProdotti.HasRows)
{

while (readerProdotti.Read())
{
SiteMapNode childNodeProd = new SiteMapNode(this,
readerProdotti["IDProdotto"].ToString(),
this.rootNode.Url + readerProdotti["IDProdotto"].ToString() + "/" + readerProdotti["NomeProdotto"].ToString() + ".aspx",
readerProdotti["NomeProdotto"].ToString(),
readerProdotti["NomeProdotto"].ToString());

AddNode(childNodeProd, childNodeCat);


}
con3.Close();
readerProdotti.Close();
readerProdotti.Dispose();....etc.


Grazie.

W la Foca e che Dio la benedoca
RE: SiteMapPath con pagine dinamiche
PeppeDotNet
PeppeDotNet non è online. Ultima attività: 05/07/2009 17.20.20PeppeDotNet
il 15 ottobre 2008 alle 17.06
eh.. per farlo andare fino a n sotto-livelli devi scrivere una funzione che in ricorsione crea i nodi uno sotto l'altro, portandoti dietro ogni volta il nodo padre in cui inserire i vari figli.

una cosa del genere

private void Ricorsione(SiteMapNode padre, string idCategoriaPadre)
{
   //esegui la select con categoria = idCategoriaPadre
   //Crei un nuovo SiteMapNode per ogni record che leggi da questa select
  
   AddNode(padre, NUOVONODO);
   Ricorsione(NUOVONODO, NUOVACATEGORIAPADRE);
}

Marchi Giuseppe
http://www.peppedotnet.it
RE: SiteMapPath con pagine dinamiche
pierpaolo1982
pierpaolo1982 non è online. Ultima attività: 30/04/2009 2.37.49pierpaolo1982
il 15 ottobre 2008 alle 18.11
www.digeltech.com | 61 messaggi dal 10 settembre 2007
scusami...
quindi niente cicli while uno dentro l'altro?

W la Foca e che Dio la benedoca
RE: SiteMapPath con pagine dinamiche
PeppeDotNet
PeppeDotNet non è online. Ultima attività: 05/07/2009 17.20.20PeppeDotNet
il 15 ottobre 2008 alle 18.57
esatto..
la ricorsione serve proprio per popolare gerarchie ad albero

Marchi Giuseppe
http://www.peppedotnet.it
RE: SiteMapPath con pagine dinamiche
pierpaolo1982
pierpaolo1982 non è online. Ultima attività: 30/04/2009 2.37.49pierpaolo1982
il 15 ottobre 2008 alle 19.00
www.digeltech.com | 61 messaggi dal 10 settembre 2007
credo di non aver capito come funziona,
hai percaso un esempio da passarmi?
oppure qualche link?

Grazie...

W la Foca e che Dio la benedoca

2 pagine: [1] 2 Avanti >>

Vai a:
Torna al forum |   Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.

COMMUNITY
ULTIMI MESSAGGI
MEDIA
IN EVIDENZA
MISC
Powered by .db Forums "Caesar Reborn" v. 2009.6.9