Web.SitMap 是 VS2005中一個非常重要的特性. 可以用於菜單等應用,但企業的應用中經常需要控制到 菜單的 target ,菜單的權限等.
通過擴展一些自定義屬性可以實現(此方法已經在E8.Net 2.0 工作流應用架構中實現)
sitmap 范例:
<siteMapNode title="主頁" url="Newmain.ASPx" target="_parent" disenable="true" startIndex="1" AdminIndex="9">
<siteMapNode title="我的桌面" img="skins/2004/images/icon/desktop.gif" menuIndex="1" url ="~\1.ASPx">
<siteMapNode title="待辦事項" url="~\Forms\frmContent.ASPx" description="待辦事項" targeturl="" />
<siteMapNode title="我登記事件" url="~\Forms\frmWaittingContent.ASPx?TypeContent=MyReg" description="我登記事件"/>
<siteMapNode title="出差授權" url="~\Forms\FrmAgentSet.ASPx" description="出差授權"/>
<siteMapNode title="計算器" url="~\Forms\Calculator.htm" description="計算器"/>
<siteMapNode title="萬年歷" url="~\Forms\wnl.htm" description="萬年歷"/>
<siteMapNode title="修改密碼" url="~\Forms\FrmModuser.ASPx" description="修改密碼"/>
</siteMapNode>
<siteMapNode title="客戶服務" img ="skins/2004/images/icon/sContacts.gif" menuIndex="2" url ="~\2.ASPx">
<siteMapNode title="客戶服務登記" resourceKey="1824" url="~\Forms\form_all_flowmodel.ASPx?appid=1026" description="客戶服務登記"/>
<siteMapNode title="客戶服務跟蹤" resourceKey="1811" url="~\AppForms\CST_Issue_List.ASPx" description="客戶服務跟蹤"/>
<siteMapNode title="抱怨投訴登記" resourceKey="1825" url="~\Forms\form_all_flowmodel.ASPx?AppID=320" description="抱怨投訴登記"/>
<siteMapNode title="抱怨投訴查詢" resourceKey="207" url="~\AppForms\frm_BYTS_Query.ASPx" description="抱怨投訴查詢"/>
<siteMapNode title="材料管理" resourceKey="1845" url="~\AppForms\frmMaterial.ASPx" description="材料管理"/>
</siteMapNode>
..
</siteMapNode>
</siteMap>
可以看到 這個sitmap中 有 target diseable resourcekey ...等擴展屬性 來實現菜單權限控制 及控制方式等
實現代碼:
protected void TreeVIEw1_TreeNodeDataBound(object sender, TreeNodeEventArgs e)