我看到了其他几个解决这个问题的问题,但都没有解决我的问题。
如果你从站点地图节点中删除url属性,它仍然是可点击的,即它仍然呈现为一个标记,因此可以点击并触发回发。我在菜单中为"父"站点地图节点做了这件事,这会引起问题,因为我不希望在单击这些项目时触发回发。
在代码中,我将父菜单项设置为"selected=false",它们呈现为跨度而不是锚点,但样式完全不同,我甚至无法访问"子"菜单项,因为当我试图将鼠标悬停在它们上面时,它们会消失。
有没有一种方法可以使"父"站点地图节点项不可点击,不带锚标记,这样在点击它们时就不会触发回发?
我的代码:Web.sitemap
<siteMapNode title="Maintenance" description="Admin functions" >
<siteMapNode url="~/UserAdmin/UserAdmin.aspx" title="Manage Users" roles="Admin" description="Manage Users" />
<siteMapNode url="~/UserAdmin/UserDetails.aspx?mode=new" title="Create User" roles="Admin" description="Create User"/>
</siteMapNode>
c#
if (node.Title == "Maintenance")
e.Item.Selectable = false;
我已经开始研究破解我主页上的样式,将锚标记上使用的类应用于设置selected=false时呈现的跨度。但我宁愿不用。
提前感谢
删除SiteMapNode
中的URL
标记,并在Web.Config
中添加
SecurityTrimmingEnabled = false
它将使该菜单项不可点击。