2
私はSite.masterファイルに埋め込まれて、次のメニューコントロールがあります:CSSクラス属性を設定するためにASP.NETメニューの親とその子にCSSクラスを 'selected'に設定しましたか?
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal" RenderingMode="List">
<Items>
<asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home" />
<asp:MenuItem NavigateUrl="~/TechServices.aspx" Text="Tech Services"/>
<asp:MenuItem NavigateUrl="~/HumanResources.aspx" Text="Human Resources"/>
<asp:MenuItem NavigateUrl="~/Marketing.aspx" Text="Marketing"/>
<asp:MenuItem NavigateUrl="~/DocumentControl.aspx" Text="Document Control"/>
<asp:MenuItem NavigateUrl="~/IT.aspx" Text="Information Tech"/>
</Items>
</asp:Menu>
をを選択した私は、次のC#のコードを使用します。
protected void Page_Load(object sender, EventArgs e) {
string thispage = this.Page.AppRelativeVirtualPath;
int slashpos = thispage.LastIndexOf('/');
string pagename = thispage.Substring(slashpos + 1);
foreach (MenuItem mi in NavigationMenu.Items) {
if (mi.NavigateUrl.Contains(pagename)) {
mi.Selected = true;
break;
}
}
}
を
上記のコードは素晴らしいです。ただし、これらのページにはサブページ(子)が含まれています。子ページにアクセスするときは、親ページに"選択済み" CSS属性を保持します。
私はWeb.sitemapファイルを作成して、すべての親ページとその子ページを整理しました。しかし、Web.sitemapを使用して上記のC#関数が親メニューにCSSクラスの "selected"属性を保持するのを手助けする方法については、私が知っています。この目的のためにWeb.sitemapファイルが必要かどうかわかりません。親と子のロジックは、Web.sitemapファイルでのみ使用できます。
親子関係がWeb.sitemapファイルでのみ参照されるため、これは機能しません。私はあなたのコードで参照を参照してくださいが表示されません。私が何かを逃していない限り、。 – Fawadafr
私は非常に難しい質問をしましたか? – Fawadafr
試しましたか? – Malk