문제

SiteemapResolve 이벤트에 사용자 정의 핸들러를 추가하면 정의하는 논리로 Siteemap URL을 즉시 업데이트 할 수 있습니다.

이 SiteMappath 컨트롤은 기능을 사용하는 것으로 보이는 SiteMappath 컨트롤에 적합합니다. 그러나 SiteemapDatasource를 사용하는 ASP.NET 메뉴 컨트롤에 대해 유사한 결과를 얻고 싶습니다. SiteMapresolve 핸들러를 사용하여 노드 변경에 영향을 미치지 않습니다.

누구든지 나를 올바른 방향으로 가리킬 수 있습니까? 건배 : d

편집 : sourcecode 나는 모든 것을 불필요하게 제거했고 다음과 함께 남겨졌습니다 - 나는 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

도움이 되었습니까?

해결책

당신의 포인터 무함마드에 감사하지만, 나는 문제를 깨뜨린 것 같습니다.

MenuitemCollection은 XML 데이터 소스에 링크하는 Whera -Muhammad의 솔루션이 작동하지 않으면 정적으로 정의 된 항목 (예 : 메뉴 코드 내에서) 만 살펴 봅니다.

Code를 Menu_MenuitemDatabound 이벤트에 배치하여 문제를 해결했으며 원하는 결과를 얻었습니다.

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top