asp.net 2.0怎么实现这样的二级菜单谢谢

annytom 2007-10-10 03:48:12
asp.net 2.0怎么实现这样的二级菜单谢谢
...全文
351 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
hj88624 2010-03-29
  • 打赏
  • 举报
回复
用Repeater
第一行,从数据库中选出一级分类<%#Eval("name").ToString() %>
第二行,根据一级分类的id获取二级分类 <%#GetDNameByID(Eval("id").ToString())%>
后台
绑定repeater
public string GetDNameByID(string id)
{string ihtml="";
//从数据库中筛选出相应的分类
.....
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = dt.Rows[i];

ihtml += "...";//一条一条取出相应的记录
}

}
return ihtml;
}
yaib57 2010-03-29
  • 打赏
  • 举报
回复
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>符合web标准二级下拉导航菜单</title>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<!--把下面代码加到<head>与</head>之间-->
<style type="text/css">
*{
padding:0;
margin:0;
}
body{
font-family:verdana,sans-serif;
font-size:small;
}
#navigation,#navigation li ul{
list-style-type:none;
}
#navigation{
margin:40px;
}/*可有可无属性,是内容与边的距离*/
#navigation li{
float:left;
text-align:center;
position:relative;/*position:relative一定要写,是下面的链接相对它绝对定位*/
}
#navigation li a:link,#navigation li a:visited{
display:block;
text-decoration:none;
color:#000;
width:120px;/*改变所有的导航栏的长度*/
height:30px;/*改变所有导航栏的高度*/
line-height:30px;
border:1px solid red;/*没有这个属性的所有的导航栏的颜色就连在一起了*/
background:#c5dbf2;
padding-left:10px;
}
#navigation li ul{
display:none;
position:absolut;
top:40px;
left:0;
margin-top:1px;/*可有可无,无的话主菜单和二级菜单就会没有空隙*/
width:120px;
}
#h{
position:absolute;
top:74px;
left:40px;
}
</style>
<script type="text/javascript">
function displaySubMenu(li) {
var subMenu = li.getElementsByTagName("ul")[0];
subMenu.style.display = "block";
}
function hideSubMenu(li) {
var subMenu = li.getElementsByTagName("ul")[0];
subMenu.style.display = "none";
}
</script>
</head>
<body>
<!--把下面代码加到<body>与</body>之间-->
<div>
<ul id="navigation">
<li onmouseover="displaySubMenu(li1)" onmouseout="hideSubMenu(this)" id="li1"><a href="#">栏目1</a><!--函数里面用id和this都代表了这个节点的意思-->
<ul>
<li><a href="#">栏目1->菜单1</a></li>
<li><a href="#">栏目1->菜单2</a></li>
<li><a href="#">栏目1->菜单3</a></li>
</ul>
</li>
<li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)"><a href="#">栏目2</a>
<ul>
<li><a href="#">栏目2->菜单1</a></li>
<li><a href="#">栏目2->菜单2</a></li>
<li><a href="#">栏目2->菜单3</a></li>
</ul>
</li>
<li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)"><a href="#">栏目3</a>
<ul>
<li><a href="#">栏目3->菜单1</a></li>
<li><a href="#">栏目3->菜单2</a></li>
<li><a href="#">栏目3->菜单3</a></li>
</ul>
</li>
</ul>
</div>
</body>
</html>
lyplba 2010-03-29
  • 打赏
  • 举报
回复
神呐。找到了。
annytom 2007-10-10
  • 打赏
  • 举报
回复
怎么结帖谢谢
zjysky 2007-10-10
  • 打赏
  • 举报
回复
我靠。csdn大bug啊。我的第一次回复没有啊
zjysky 2007-10-10
  • 打赏
  • 举报
回复
什么意思啊。
有个现成的treeview啊
march22 2007-10-10
  • 打赏
  • 举报
回复
嵌套 datalist 或者 repeater
annytom 2007-10-10
  • 打赏
  • 举报
回复
谢谢 fellowcheng
annytom 2007-10-10
  • 打赏
  • 举报
回复
楼上的可以给个实例看一下吗?
fellowcheng 2007-10-10
  • 打赏
  • 举报
回复
<asp:datalist id="DataList1" runat="server">
<ItemTemplate>
<TABLE id="Table1" cellSpacing="0" cellPadding="0" border="0">
<tr><TD colspan="3" height="6"></tr>
<TR>
<td align="right" valign="middle"><img src="images/index_05.jpg" width="7" height="11" />
</td>
<td align="center" valign="middle"><a href="/ProductList.aspx?TypeID=<%# DataBinder.Eval(Container.DataItem,"ID")%>"><%# DataBinder.Eval(Container, "DataItem.Name") %></A>
</span></td>
<td align="left" valign="middle"><img src="images/index_06.jpg" width="7" height="11" />
</td>
</TR>
<TR>
<TD colspan="3">
<asp:datalist id="Datalist2" runat="server" Width="100%" RepeatColumns="3" CssClass="purple12">
<ItemTemplate>
<table>
<tr>
<td height="20" align="center" valign="middle"><a href="/ProductList.aspx?TypeID=<%# DataBinder.Eval(Container.DataItem,"ID")%>"><%# DataBinder.Eval(Container, "DataItem.Name") %></a></td>
</tr>
</table>
</ItemTemplate>
</asp:datalist></TD>
</TR>
<tr><TD colspan="3" height="6"></tr>
</TABLE>
</ItemTemplate>
</asp:datalist>


private void DataList1_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item||e.Item.ItemType == ListItemType.AlternatingItem)
{
DataRowView rowv = (DataRowView)e.Item.DataItem;
int mainID = Convert.ToInt32(rowv["ID"]);
DataList DataList2 = (DataList)e.Item.FindControl("DataList2");
if(mainID>0)
{
string strSql = "select * from gs_ClassInfo where BigID=" + mainID.ToString();
DataTable dtl = ob.ExecuteTable(strSql);
if(dtl != null && dtl.Rows.Count>0)
{
DataList2.DataSource = dtl;
DataList2.DataBind();
}
}
}

}
fellowcheng 2007-10-10
  • 打赏
  • 举报
回复
我原来做的是用DataList嵌套
annytom 2007-10-10
  • 打赏
  • 举报
回复
不明白啊!可以给个源码吗?
feng5799 2007-10-10
  • 打赏
  • 举报
回复
把所有的菜单保存在一张表里面...本身有个id 还有一个上级的id假设为Pid,并有层次设置0,1
取出所有层次为0的菜单放到ds1中

循环ds1,将他的值放在 时尚女包处...
得到ds1中的id ,取出表中层次1的菜单..他的pi=ds1中的id
绑定在时尚女包的下面
EricGuzuqiang 2007-10-10
  • 打赏
  • 举报
回复
很常见的呀
先创建两个dropdownlist:dropdownlist1,dropdownlist2
page_load的时候先bind dropdownlist1。
然后在dropdownlist1的selectedIndexChanged事件中bind dropdownlist2
feng5799 2007-10-10
  • 打赏
  • 举报
回复
怎么样的二级菜单?????看不到效果
annytom 2007-10-10
  • 打赏
  • 举报
回复
图片重新上传

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧