Click here to Skip to main content
15,905,782 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi,

In my web Application, i need to highlight the menu where the user is in. I tried using JS by Onclick, Obj.cssName="span"

but it doesn't works well, OnPostback inside highlighted menus(sub menu) it just lost their cssClass.

Even i tried with ServerSide code. Onclick menuList.cssClass="span",but noluck.
I'm using Linkbutton, Postback URL for menu links.

Here is my JS in my masterpage
XML
function setHidden(val)
    {
    //alert(val.id);
    document.getElementById('<%= hd.ClientID %>').value = val.id;
    OOK();
    }

    function OOK()
    {
    var objhd = document.getElementById('<%= hd.ClientID %>');
   // alert(objhd.value);
    if(objhd.value != "")
    {
    var a1 = document.getElementById(objhd.value);
    a1.className="red";
    }
    }



Here is my Content of MasterPage

XML
<body >

    <form id="form1" runat="server">

    <asp:HiddenField ID="hd" runat="server" />
    <div>
        <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">

        </asp:ContentPlaceHolder>
    </div>
    <ul id="menu">
    <li><a><asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="setHidden(this);" PostBackUrl="~/Default.aspx">One</asp:LinkButton></a></li>
    <li><a><asp:LinkButton ID="LinkButton2" runat="server" OnClientClick="setHidden(this);" PostBackUrl="~/Default2.aspx">Two</asp:LinkButton></a></li>
    <li><a><asp:LinkButton ID="LinkButton3" runat="server" OnClientClick="setHidden(this);" PostBackUrl="~/Default3.aspx">Three</asp:LinkButton></a></li>
    <li><a><asp:LinkButton ID="LinkButton4" runat="server" OnClientClick="setHidden(this);" PostBackUrl="~/Default4.aspx">Four</asp:LinkButton></a></li>
</ul>

    </form>
</body>



If i gave
<body önload="OOK();">

while i click twice on an menu, it works !!
i can't guess what i does...!!
Posted
Updated 17-Apr-12 4:41am
v4
Comments
ZurdoDev 17-Apr-12 8:01am    
It is doubtful anyone can help you if you do not provide your code. You'll likely want to do this in server side so that it sets the CSS but you likely also have other CSS that is interfering.
J.Karthick 17-Apr-12 10:29am    
what do you mean by interfering?
Am i need to bind another css class?

In my above code i tried setting highlight for an menu, but it just appears and disappears.
Is it possible to do it with client side alone ?
I tried it, but my Hiddenfield value lost after postback.

1 solution

Sure this will help you.....

<%if (LoadPagename=="Default.aspx"){ %>
<table><tbody><tr><td><a href="Default.aspx"><img src="images/mnumm_over.jpg" height="29" width="182" border="0" style="cursor:pointer;" /></a></td></tr></tbody></table>
<%}else{ %>
<table><tbody><tr><td><a href="Default.aspx"><img src="images/mnumm.jpg" height="29" width="182" border="0" onmouseover="this.src='images/mnumm_over.jpg'"  önmouseout="this.src='images/mnumm.jpg'" style="cursor:pointer;" /></a></td></tr></tbody></table>
<%}%>

<%if (LoadPagename=="Default2.aspx"){ %>
<table><tbody><tr><td><a href="Default2.aspx"><img src="images/mnucm_over.jpg" height="29" width="182" border="0" style="cursor:pointer;" /></a></td></tr></tbody></table>
<%}else{ %>
<table><tbody><tr><td><a href="Default2.aspx"><img src="images/mnucm.jpg" height="29" width="182" border="0" onmouseover="this.src='images/mnucm_over.jpg'"  önmouseout="this.src='images/mnucm.jpg'" style="cursor:pointer;" /></a></td></tr></tbody></table>
<%}%>

<%if (LoadPagename=="Default3.aspx"){ %>
<table><tbody><tr><td><a href="Default3.aspx"><img src="images/mnuma_over.jpg" height="29" width="182" border="0" style="cursor:pointer;" /></a></td></tr></tbody></table>
<%}else{ %>
<table><tbody><tr><td><a href="Default3.aspx"><img src="images/mnuma.jpg" height="29" width="182" border="0" onmouseover="this.src='images/mnuma_over.jpg'"  önmouseout="this.src='images/mnuma.jpg'" style="cursor:pointer;" /></a></td></tr></tbody></table>
<%}%> 


On your code behind file

protected void Page_Load(object sender, EventArgs e)
    {
        string LoadPagename;
        LoadPagename = System.IO.Path.GetFileName(Request.FilePath).ToLower();
    }


Inside If(condition){
// images for selected tab....
}
else
{
// images for unselected tab with mouse hover and out....
}
Change your image and its height,width.......
 
Share this answer
 
v4
Comments
J.Karthick 18-Apr-12 1:37am    
Thanks for your reply...
Can you please explain your code ?

I have doubt in variable 'LoadPagename' which was in server side and you used the same 'LoadPagename' in Client side also.
Is that client side is inside JS function or what ?
you including <% %> for what ?
I used it(<% %>) for binding server side columns in Gridview...you are trying it inside JS ?

Please give me more explanation of your source....

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900