2009-06-30 2 views
0

SiteMapResolve 이벤트에 사용자 지정 처리기를 추가하여 정의한 일부 논리에 따라 사이트 맵 URL을 즉시 업데이트 할 수 있습니다.SiteMapDataSource에 대한 사용자 지정 SiteMapResolve의 동일한 효과

이 SiteMapResolve 기능을 사용하는 것으로 보이는 SiteMapPath 컨트롤에는 괜찮습니다 ... 그러나 SiteMapDataSource를 사용하는 asp.net Menu 컨트롤에 대해 비슷한 결과를 얻고 싶습니다. 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

+0

감사합니다. Muhammad에게 감사의 말을 전합니다. 제가 가진 문제를 보여주기 위해 간단한 소스 코드를 추가했습니다. –

답변

0


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
이 포인터 무하마드 주셔서 감사합니다,하지만 난 문제를 금 것 같아요.

나는 menuItemCollection는 정적으로 정의 항목에서 내가 XML 데이터 소스에 연결하고있어 wheras (즉, 메뉴의 코드 내에서) 보이는 것 같아요 - 그래서 무하마드의 솔루션은 내가 문제를 해결 한

작동하지 않습니다 menu_MenuItemDataBound 이벤트에 코드를 삽입하여 원하는 결과를 얻고 있습니다.

모든 도움에 감사드립니다!

+0

예, 당신은 절대적입니다, 나는 당신의 예를 확인하고 같은 것을 발견했습니다 ......... 좋은 점심 :) –

관련 문제