kazimyaver | Ağustos 2014

ASP.NET Master.Page CSS Menu Active

Merhabalar, 

ASP.NET ile hazırlanan projemizde Master.Page sayfası mevcut ise ve CSS kullanılarak hazırlanan bir menü'de ki ögeyi aktif etmemiz gerekiyorsa bir yöntemim var!


Yukarıda ki menü'de PAGES alanının arkasının diğerlerinden daha farklı olduğunu görebilirsiniz. Bu o sayfa'da olduğunu belirtmek için kullanılan bir yöntem. Peki menü kodları Master.Page'de kaldığı için PAGES sayfasından menüyü nasıl aktif/seçilmiş yapacağız? 

Master.Page'de bulunan menümüz-ün kodlarını inceleyim. 
<ul>
   <li runat="server" class="" id="anasayfa"><a href="Anasayfa.aspx" title="">Anasayfa</a></li>
   <li runat="server" class="" id="kurumsal"><a href="Kurumsal.aspx" title="">Kurumsal</a></li>
</ul>

Yukarıda class alanını boş bırakarak arka planda atamasını gerçekleştiriyoruz. Buradan sonra ki aşamada ise MasterPage.master.cs dosyamızı açarak Page_Load alanına şu kodları eklememiz gerekiyor.
string curlink = Request.RawUrl;
   if (curlink.Contains("/Anasayfa.aspx"))
   {
       anasayfa.Attributes["class"] = "selected";
   }
   else if (curlink.Contains("/Kurumsal.aspx"))
   {
       kurumsal.Attributes["class"] = "selected";
   }
Request.RawUrl kodu adres satırında ki sayfamızın ismini alacaktır. Eğer o sayfada görünürsek id'sine eşit olan boş Class'ı selected olarak dolduracaktır. Bu da sizin hazırlamış olduğunuz CSS ile o menüyü belirgin edecektir.

Umarım yararlı olmuştur.