تغییر رنگ آیتم انتخابی در منو
سه شنبه 9 تیر 1394هنگامی یک منو در صفحه قرار میدهیم .با کلیک بر روی منو و رفتن به صفحه مورد نظر می خواهیم آیتم انتخاب شده تغییر رنگ دهد . در این مقاله با ذکر یک مثال این عملیات را شرح خواهیم داد
در ابتدا ما یک MasterPage ایجاد میکنیم .سپس داخل این MasterPage یک کنترل Menu قرار میدهیم .
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="false" />
<asp:Menu ID="Menu" runat="server" DataSourceID="SiteMapDataSource1" Orientation="Horizontal"
OnMenuItemDataBound="OnMenuItemDataBound">
<LevelMenuItemStyles>
<asp:MenuItemStyle CssClass="main_menu" />
<asp:MenuItemStyle CssClass="level_menu" />
</LevelMenuItemStyles>
</asp:Menu>
sitemap فقط یک نقشه از سایت میباشد .فایل XML که شامل تمامی صفحات سایت می باشد .هنگامی که یک صفحه به سایت اضافه شد ، میبایست یک node در فایل XML مربوط به نقشه سایت اضافه کنید .

فایل XML زیر شامل تگ های مربوط به صفحات مختلف میباشد :
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url=""title="Home" description="">
<siteMapNode url="Home.aspx" title="Home" description="Home Page" />
<siteMapNode url="javascript:;" title="Services" description="Services Page">
<siteMapNode url ="Consulting.aspx" title="Consulting" description="Consulting Page"></siteMapNode>
<siteMapNode url ="Outsourcing.aspx" title="Outsourcing" description="Outsourcing Page"></siteMapNode>
</siteMapNode>
<siteMapNode url="About.aspx" title="About" description="About Us Page" />
<siteMapNode url="Contact.aspx" title="Contact" description="Contact Us Page" />
</siteMapNode>
</siteMap>
برای تغییر نمای منو سایت باید از Style استفاده کنیم ، در این مثال ما style مربوطه را در قسمت head صفحه master قرار داده ایم .اما توصیه میشود که یک فایل Css جدا ایجاد کرده و لینک آنرا به صفحه اضافه نماییم .
<style type="text/css">
body
{
font-family: Arial;
font-size: 10pt;
}
.main_menu
{
width: 100px;
background-color: #8AE0F2;
color: #000;
text-align: center;
height: 30px;
line-height: 30px;
margin-right: 5px;
}
.level_menu
{
width: 110px;
background-color: #000;
color: #fff;
text-align: center;
height: 30px;
line-height: 30px;
margin-top: 5px;
}
.selected
{
background-color: #852B91;
color: #fff;
}
</style>
تغییر رنگ آیتم انتخاب شده از منو
در داخل تگ مورد نظر از رویداد OnMenuItemDataBound استفاده کرده ایم .
دستور #C :
protected void OnMenuItemDataBound(object sender, MenuEventArgs e)
{
if (SiteMap.CurrentNode != null)
{
if (e.Item.Text == SiteMap.CurrentNode.Title)
{
if (e.Item.Parent != null)
{
e.Item.Parent.Selected = true;
}
else
{
e.Item.Selected = true;
}
}
}
}
دستور VB.Net :
Protected Sub OnMenuItemDataBound(sender As Object, e As MenuEventArgs)
If SiteMap.CurrentNode IsNot Nothing Then
If e.Item.Text = SiteMap.CurrentNode.Title Then
If e.Item.Parent IsNot Nothing Then
e.Item.Parent.Selected = True
Else
e.Item.Selected = True
End If
End If
End If
End Sub
- ASP.net
- 3k بازدید
- 0 تشکر