通過向SiteMapResolve事件添加自定義處理程序,我可以通過我定義的一些邏輯動態更新站點地圖url。自定義SiteMapResolve for SiteMapDataSource的等效效果
這對SiteMapPath控件來說沒問題,它似乎使用了這個SiteMapResolve功能......但是我想爲使用SiteMapDataSource的asp.net菜單控件獲得類似的結果。使用SiteMapResolve處理程序更改節點不起任何作用。
任何人都可以指向正確的方向嗎? 歡呼:d
編輯:源代碼 我已經去除了不必要的一切,並留下了下面我 - 我一定是誤解的東西做的menuItemCollecton的結構,但它總是空的。
的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
感謝Muhammad,我已經添加了一些簡單的源代碼來演示我擁有的問題。 – 2009-06-30 15:42:54