自分のウェブサイトのナビゲーションバーを作りたいと思います。このクマにはさまざまなページへのリンクがあり、ユーザーが現在表示しているページへのリンクを強調表示する必要があります。私はこのようなHTMLを持っている瞬間コントロールの子要素をその属性に基づいて検索しますか?
:このような私のPageLoadイベントで
<div id="navbar" runat="server">
<a href="/" runat="server" id="lnkHome">Home</a> |
<a href="~/info.aspx" runat="server" id="lnkInfo">Info</a> |
<a href="~/contacts.aspx" runat="server" id="lnkContacts">Contacts</a> |
<a href="~/settings.aspx" runat="server" id="lnkSettings">Settings</a>
</div>
とコード:
//Show the currently selected page
String filename = System.IO.Path.GetFileNameWithoutExtension(Request.Path).ToLower();
if (filename == "default")
lnkHome.Attributes.Add("class", "selected");
else if (filename == "info")
lnkInfo.Attributes.Add("class", "selected");
else if (filename == "contacts")
lnkContacts.Attributes.Add("class", "selected");
else if (filename == "settings")
lnkSettings.Attributes.Add("class","selected");
これは、維持することは困難です。リンクを追加したい場合は、IDを与え、ifステートメントに情報を追加する必要があります。私はより柔軟なシステムを望んでいます。ここでは、ナビゲーションバーにリンクを動的に追加し、ユーザーが正しいページにいるときにハイライト表示されるようにします。
どうすればよいですか? href
のプロパティに基づいて、子要素のためにnavbar
を検索することはできますか?これらの要素がrunat="server"
属性を持つ必要がない場合は、通常のHTMLと同じように扱うことができます。あるいは、私は考慮すべき異なる実装がありますか?