Problemas com SiteMapPath e Server.Transfer()
Salve desenvolvedores,
Um modo fácil hoje de ir para outra página levando parametros é o Server.Transfer(), que armazena valores no Contexto (Context.Items) e recupera os itens ou controles na página seguinte. Porém, o endereço do browser não é atualizado, como no Response.Redirect, que força uma nova requisição ao servidor.
Com isso, temos problemas em apresentar o nó real no controle SiteMapPath, afinal, a URL não é atualizada. Podemos resolver esse problema com o seguinte código:
protected void Page_Load(object sender, EventArgs e)
{
// Registramos o evento Resolve de SiteMapPath
SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(this.OnSiteMapResolve);
}
private SiteMapNode OnSiteMapResolve(object sender, SiteMapResolveEventArgs args)
{
SiteMapProvider provider = sender as SiteMapProvider; // Recuperamos o SiteMapPath
return provider.FindSiteMapNode(HttpContext.Current.Request.CurrentExecutionFilePath); // Procuramos o nó de acordo com o arquivo atual
}
Nesse caso, o ideal seria usar uma MasterPage.
abraços,
Permalink Enviar por e-mail. Hits para esta publicação: 469.
Djalma Ribeiro disse,
27 de Março de 2007 @ 18:50
Valeu cara..grande ajuda!!!