Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Como posso mudar o title e a url do NODE atual?
Deverá ser mostrado conforme o ~/PaineldeControle/HotSites/?id=??? vier.
Já consegui fazer com que o SiteMapPath da MasterPage seja modificado pelo aspx.vb ocultando como na demonstração abaixo:
----------------------------------------------------------------------
~/MasterPage.master
<asp:SiteMapPath ID="smpNavegacao" runat="server" PathSeparator=" » " RenderCurrentNodeAsLink="true"></asp:SiteMapPath>----------------------------------------------------------------------~/PaineldeControle/MasterPage.master
Muda somente a estrutura de alguns menus
----------------------------------------------------------------------
~/PaineldeControle/HotSites/Default.aspx.vb
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim vSiteMapPath As SiteMapPath
'Master (~/MasterPage.master). Master(~/PaineldeControle/MasterPage.master)
vSiteMapPath = CType(Master.Master.FindControl("smpNavegacao"), SiteMapPath)
'Linha de teste para ver se está funcional, na aplicação não existirá
vSiteMapPath.Visible = False
End Sub----------------------------------------------------------------------
Tentei ajuntar com o código da página http://msdn.microsoft.com/en-us/library/sy...itemappath.aspx e não consegui, parece funcionar somente na ~/MasterPage.master.vb
Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Namespace Samples.AspNet
' The DropDownNavigationPath is a class that extends the SiteMapPath
' control and renders a DropDownList after the CurrentNode. The
' DropDownList displays a list of pages found further down the site map
' hierarchy from the current one. Selecting an item in the DropDownList
' redirects to that page.
'
' For simplicity, the DropDownNavigationPath assumes the
' RootToCurrent PathDirection, and does not apply styles
' or templates the current node.
'
<AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class DropDownNavigationPath
Inherits SiteMapPath
' Override the InitializeItem method to add a PathSeparator
' and DropDownList to the current node.
Protected Overrides Sub InitializeItem(item As SiteMapNodeItem)
' The only node that must be handled is the CurrentNode.
If item.ItemType = SiteMapNodeItemType.Current Then
Dim hLink As New HyperLink()
' No Theming for the HyperLink.
hLink.EnableTheming = False
' Enable the link of the SiteMapPath is enabled.
hLink.Enabled = Me.Enabled
' Set the properties of the HyperLink to
' match those of the corresponding SiteMapNode.
hLink.NavigateUrl = item.SiteMapNode.Url
hLink.Text = item.SiteMapNode.Title
If ShowToolTips Then
hLink.ToolTip = item.SiteMapNode.Description
End If
' Apply styles or templates to the HyperLink here.
' ...
' ...
' Add the item to the Controls collection.
item.Controls.Add(hLink)
AddDropDownListAfterCurrentNode(item)
Else
MyBase.InitializeItem(item)
End If
End Sub 'InitializeItem
Private Sub AddDropDownListAfterCurrentNode(item As SiteMapNodeItem)
Dim childNodes As SiteMapNodeCollection = item.SiteMapNode.ChildNodes
' Only do this work if there are child nodes.
If Not (childNodes Is Nothing) Then
' Add another PathSeparator after the CurrentNode.
Dim finalSeparator As New SiteMapNodeItem(item.ItemIndex, SiteMapNodeItemType.PathSeparator)
Dim eventArgs As New SiteMapNodeItemEventArgs(finalSeparator)
InitializeItem(finalSeparator)
' Call OnItemCreated every time a SiteMapNodeItem is
' created and initialized.
OnItemCreated(eventArgs)
' The pathSeparator does not bind to any SiteMapNode, so
' do not call DataBind on the SiteMapNodeItem.
item.Controls.Add(finalSeparator)
' Create a DropDownList and populate it with the children of the
' CurrentNode. There are no styles or templates that are applied
' to the DropDownList control. If OnSelectedIndexChanged is raised,
' the event handler redirects to the page selected.
' The CurrentNode has child nodes.
Dim ddList As New DropDownList()
ddList.AutoPostBack = True
AddHandler ddList.SelectedIndexChanged, AddressOf Me.DropDownNavPathEventHandler
' Add a ListItem to the DropDownList for every node in the
' SiteMapNodes collection.
Dim node As SiteMapNode
For Each node In childNodes
ddList.Items.Add(New ListItem(node.Title, node.Url))
Next node
item.Controls.Add(ddList)
End If
End Sub 'AddDropDownListAfterCurrentNode
' The sender is the DropDownList.
Private Sub DropDownNavPathEventHandler(sender As Object, e As EventArgs)
Dim ddL As DropDownList = CType(sender, DropDownList)
' Redirect to the page the user chose.
If Not (Context Is Nothing) Then
Context.Response.Redirect(ddL.SelectedValue)
End If
End Sub 'DropDownNavPathEventHandler
End Class 'DropDownNavigationPath
End Namespace
Carregando comentários...