En ajoutant un gestionnaire personnalisé à l'événement SiteMapResolve, je peux mettre à jour les URL de sitemap à la volée, selon une logique que je définis.Effet équivalent de Custom SiteMapResolve pour SiteMapDataSource
Cela est correct pour les contrôles SiteMapPath, qui semblent utiliser cette fonctionnalité SiteMapResolve ... mais je veux obtenir un résultat similaire pour un contrôle de menu asp.net utilisant SiteMapDataSource. La modification des noeuds avec le gestionnaire SiteMapResolve n'a aucun effet.
Quelqu'un pourrait-il me diriger dans la bonne direction? acclamations: D
modifier: sourcecode J'ai enlevé tout inutile et me reste ce qui suit - je dois être mal compris quelque chose à voir avec la structure du menuItemCollecton mais il est toujours vide.
web.sitemap
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="default.aspx" title="Homepage" description="Home">
<siteMapNode url="secondpage.aspx" title="Page 2" />
</siteMapNode>
</siteMap>
default.aspx
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Menu runat=server ID=menu DataSourceid=dsSiteMap />
<asp:SiteMapDataSource ID="dsSiteMap" runat="server" />
<asp:Label runat=server id=lbMenuCount />
</div>
</form>
</body>
</html>
Default.aspx.vb
Partial Class _Default Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
lbMenuCount.text = menu.Items.Count
End Sub
End Class
Merci Muhammad, j'ai ajouté un code source simple pour montrer le problème que j'ai. –