这项技术也用于菜单第章介绍了导航控件例如Menu和SiteMapPath控件我们在Wrox United Web站点中遇到的一个问题是希望将SiteMapPath控件放置在所有的页面一上这意味着每个页面都必须作为一个XML节点保存在SiteMap文件中然而我们不希望所有的页面都出现在菜单中例如我们不希望用户直接导航到Checkout页面因为我们只希望他们从Shopping Cart页面导航过去我们的问题是可以将一个节点保存在SiteMap和SiteMapPath中但是不出现在菜单中导航架构并没有特别处理这种情况因此我们必须欺骗
我们所采取的处理是使用Master页面的MenuItemDataBound事件(siteMaster)如下所示
SystemWebUIWebControlsMenuEventArgs)
Dim text As String = eItemText
If text = Checkout Or text = Shop Item Or text = Shopping Cart Then
eItemParentChildItemsRemove(eItem)
End If
End
在从SiteMap文件中提取每个菜单项并绑定到菜单的时候将会触发MenuItemDataBound事件在这个事件过程中我们检查菜单文本是不是我们不希望显示的页面如果是的则将其从菜单中删除这意味着该菜单项在导航结构中仍然保留着位置但不会在菜单中显示出来
由此可以看到由ASPNET产生的事件是非常有用的虽然ASPNET负责数据的绑定和显示但是我们仍然能控制正在发生的事情下一小节介绍另一个示例其中事件由用户间接触发
ASPNET 入门教程完整版
[] [] [] []