10 Kasım 2011 Perşembe

Javascript ile sayfa adını almak

web sitesi adresinizin www.tersduz.com/icerik.aspx olduğunu farz edin bu
elimizdeki javascript kodu bize icerik.aspx sayfa adının dönmesini sağlamakta.
        var sPath = window.location.pathname;

        //var sPage = sPath.substring(sPath.lastIndexOf('\\') + 1);

        var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);

Aşağıdaki kodlarda örneğin bir master page sahibim ve bu master page içerisinde
<ul>

            <li><a id="anasayfa"
href="default.aspx" class="current">Ana
Sayfa</a></li>
            <li><a id="matematikdersleri"
href="dersler.aspx">Matematik Dersleri</a></li>
            <li><a id="siteharitasi"
href="siteharitasi.aspx">Site Haritası</a></li>
            <li><a id="katkidabulunanlar"
href="katkida_bulunanlar.aspx">Katkıda Bulunanlar</a></li>
            <li><a id="okulumuz"
href="http://www.cumhuriyetioo.edu.tr">Okulumuz</a></li>

</ul>  

eğer kullanıcı sayfalar birisine tıkladığında örneğin dersler.aspx sayfasına
tıkladığında current classının anasayfadan gidip matematikderslere geçmesi
gerekli bunun için geliştirmiş olduğum
javascrip kodu şöyle oldu.
<script type="text/javascript">
    $(document).ready(function () {
         var sPath = window.location.pathname;
        //var sPage = sPath.substring(sPath.lastIndexOf('\\')
+ 1);
        var sPage = sPath.substring(sPath.lastIndexOf('/') +
1);
        if (sPage == "") {  
$("#anasayfa").addClass("current");        
$("#matematikdersleri").removeClass("current");
$("#siteharitasi").removeClass("current");
$("#katkidabulunanlar").removeClass("current");           
$("#okulumuz").removeClass("current");
        }
        else if (sPage == "dersler.aspx") {
$("#anasayfa").removeClass("current");
$("#matematikdersleri").addClass("current");
$("#siteharitasi").removeClass("current");           
$("#katkidabulunanlar").removeClass("current");
$("#okulumuz").removeClass("current");
        }
        else if (sPage == "siteharitasi.aspx") {
$("#anasayfa").removeClass("current");
$("#matematikdersleri").removeClass("current");           
$("#siteharitasi").addClass("current");
$("#katkidabulunanlar").removeClass("current");

$("#okulumuz").removeClass("current");
        }
        else if (sPage == "katkida_bulunanlar.aspx") {
$("#anasayfa").removeClass("current");
$("#matematikdersleri").removeClass("current");
$("#siteharitasi").removeClass("current");
$("#katkidabulunanlar").addClass("current");
$("#okulumuz").removeClass("current");
        }
    });
</script>


Eğer menunuz programatik olarak üretiliyorsa örenğin bir repater içerisinde
üretilen ul-li yapısı gibi
<asp:Repeater ID="menu_rpt" runat="server"
DataSourceID="sqlkaynak3">
<HeaderTemplate>
<li><a href="default.aspx" id="menu00"
class="current"><span></span>Anasayfa</a></li>          
</HeaderTemplate>             
<ItemTemplate>           
<li><a href='<%# "konsol.aspx?kategori=" + Eval("id") + "&konsol=" + Eval("adi")
%>' id='<%# "menu" + Eval("id") %>'><span></span><%# Eval("adi") %></a></li>     
</ItemTemplate>

 </asp:Repeater>
ozaman jquery kodlarımız asp.neet için şöyle olmalı
<script type="text/javascript">
    $(document).ready(function () {
        var secili = "menu" + '<%= lblsecilioge.Text %>';
  if (secili != "menuanasayfa") {
            $("#" + secili + "").addClass("current");
$("#menu00").removeClass("current");
        }
        else {
$("#menu00").addClass("current");

        }
    });

</script>

buradaki lblsecilioge.Text içeriği ise görünmeyen bir textbox olup içi söylece
dolduruluyor.
string secili = Request.QueryString["kategori"].ToString();
lblsecilioge.Text = secili;

Hiç yorum yok:

Yorum Gönder