如何实现动态导航栏-正在浏览的页面导航栏高亮?
菜单是用repeater,
<div id= "navigation ">
<ul>
<asp:Repeater ID= "Repeater1 " runat= "server ">
<ItemTemplate >
<li> <a href = ' <%#DataBinder.Eval(Container, "DataItem.Url ")%> '> <%#DataBinder.Eval(Container, "DataItem.ClassName ")%> </a> </li>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>
#navigation ul li a#active {
background: url(../images/navigation-active.gif);
color: #a21 !important;
font-weight: bold;
}
如果在li加上id区分active的连接,但是因为是repearter,他把所有的菜单都repeat成同一个id,结果导致全部菜单都是高亮了。我要怎么控制只有当前浏览页菜单才高亮啊~
------解决方案--------------------顶起,这个问题问得好,我也想知道。
不过用response.write来写肯定行。
------解决方案-------------------- 你可以试试在菜单数据绑定时判断链接的页面是否本页页面名称。 是则为其设定CS。
------解决方案--------------------睡了
你用CSS控制下
------解决方案--------------------我有个思路,可以把所有可能变亮的区域都作成panel然后使用document.panel.style控制样式
------解决方案-------------------- <ul>
<asp:Repeater ID= "Repeater1 " runat= "server " OnDataBinding= "Repeater1_DataBinding ">
<ItemTemplate>
<li>
<asp:Panel ID= "panIndex " runat= "server ">
<a href= ' <%# DataBinder.Eval(Container, "DataItem.Url ") %> '>
<% #DataBinder.Eval(Container, "DataItem.ClassName ") %>
</a>
</asp:Panel>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
protected void Repeater1_DataBinding(object sender, EventArgs e)
{
Panel myPan = (Panel)Repeater1.Items[(int)你想要高亮的行的索引].FindControl( "panIndex ");
myPan.CssClass = "active ";
}
然后active中扩展 <div> 中 <a> 的样式
------解决方案--------------------这样应该也可以:
<asp:Repeater ID= "Repeater1 " runat= "server " OnPreRender= "Repeater1_PreRender ">
<ItemTemplate>
<asp:Literal ID= "Literal1 " runat= "server " Text= ' <%# formUrl(Eval( "Url "),Eval( "ClassName ")) %> '> </asp:Literal>
</ItemTemplate>