Un problème supplémentaire se produit lorsque j'ai découvert que lorsque je cache le dernier enfant, le séparateur reste visible.
J'ai trouvé une solution:
Je vais utiliser OnItemDataBound
définition: <asp:SiteMapPath OnItemDataBound="SiteMapNodeItemEventHandler" /
> mise en œuvre: <asp:SiteMapPath ID="siteMapPath" runat="server" SiteMapProvider="CustomSiteMapProvider" OnItemDataBound="SiteMapPath_OnItemDataBound"
>
cs partie:
protected void SiteMapPath_OnItemDataBound(object sender, SiteMapNodeItemEventArgs e)
{
//Hiding current bread crumb node - it will be presented via ajax after page load.
SiteMapNodeItem nodeItem = e.Item;
SiteMapNode node = ((SiteMapPath)sender).Provider.CurrentNode;
// need to hide separator also, so I'm looking for current node index to compare to SiteMapNodeItem.ItemIndex
// same index will be for node and separator.
if ((node != null) && (node.ParentNode != null))
{
int index = 0;
do
{
node = node.ParentNode;
index++;
} while (node.ParentNode != null);
if (nodeItem.ItemIndex == index)
{
nodeItem.Visible = false;
}
}
}
Désolé, mais ce n'est pas asp-classique. – Paul
Correction d'un tag par @Paul – Greg