如何在ASP.NET中实现,网站中常见的,一级菜单:有大类,大类下面有小类。从数据库调用菜单内容。

谢谢大家,但我还是没有看懂。不知道什么意思。我告诉你我现在已经实现的东西:我有两个表,一个是大类表:class(classid,classname);一个是小类表ancl... 谢谢大家,但我还是没有看懂。不知道什么意思。我告诉你我现在已经实现的东西:
我有两个表,一个是大类表:class(classid,classname);一个是小类表anclass(anclassid,anclassname,classid),其中小类表中的classid和大类表中的calssid是关联关系。
于是我拖了一个sqlDateSource,到页面上,数据源绑定为:select a.classid,a.classname,b.ancalssid,b.anclassname from class a inner join anclass b on a.classid=b.classid.这样拖一个GridView控件来绑定这个数据源,就能实现,但问题是,一个大类如果对应两个以上小类的时候,他就会一个大类名称对应一个小类,同样的一个大类名称,可能会显示两次以上,我想要的结果是显示一个大类名称,然后在他下面显示所有的小类。不知道我说的清楚不?
展开
 我来答
zhangfei6263
2011-07-05 · TA获得超过335个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:146万
展开全部

可以用siteMapPath

在添加控件之前,我们必须添加一个名字为Web.sitemap的xml文件,而且位置必须在应用程序的根目录

例:

<?xml version="1.0" encoding="utf-8" ?>

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0"; >

    <siteMapNode url="1.aspx" title="主页"  description="">

        <siteMapNode url="2.aspx" title="2分页"  description="" >

          <siteMapNode url="3-1.aspx" title="3-1分页 "></siteMapNode>

          <siteMapNode url="3-2.aspx" title="3-2分页 "></siteMapNode>

          <siteMapNode url="3-3.aspx" title="3-3分页 "></siteMapNode>

         </siteMapNode>

    </siteMapNode>

</siteMap>

Sitemap:根节点,并且一个站点地图只能有一个Sitemap元素

SiteMapNode:对应页面的节点,一个节点描述一个页面

Title:描述页面(这与页面头部的<Title>没有任何的关系,虽然他们的值可以相同)

Url:文件在解决方案的位置

Description:说明性文本

这个比较局限性,你也可以自己创建一个xml文件然后 写法跟这个一样就行了,注意xml的节点是自定义的,但是建议个个节点的属性名称一致

然后编译控件的数据绑定

更多追问追答
追问
这个好像是添加网站地图的,我不是想要网站地图的效果。我现在是想要一个菜单。
追答
额 想要做成树形菜单的那种效果,不用siteMapPath,用div+javascript很麻烦,建议你用SitMapPath控件
雪夜hpping
2011-07-04 · TA获得超过468个赞
知道小有建树答主
回答量:308
采纳率:0%
帮助的人:463万
展开全部
数据库中表:id/menu/pid,当pid为0时,一级菜单,然后使用递归得到二级、三级、……

方法给你了,至于怎么写程序,自己去写,当然也可找我给你写
更多追问追答
追问
有没有实际的例子啊,发一个给我,不胜感激啊!我的邮箱:xingxingxp168@gmail.com
追答
//递归添加树的节点   
public void AddTree(int ParentID, TreeNode pNode)
{
DataView dvTree = new DataView(ds.Tables[0]);
DataView duTree = new DataView(du.Tables[0]);
//过滤ParentID,得到当前的所有子节点
dvTree.RowFilter = "[PARENTID] = " + ParentID;

foreach (DataRowView Row in dvTree)
{
TreeNode Node = new TreeNode();
if (pNode == null)
{ //添加根节点
Node.Text = Row["deptment"].ToString();
treeView1.Nodes.Add(Node);
AddTree(Int32.Parse(Row["deptID"].ToString()), Node); //再次递归
}
else
{ //添加当前节点的子节点
Node.Text = Row["deptment"].ToString();
pNode.Nodes.Add(Node);
treeView1.SelectedNode = Node;

duTree.RowFilter = "[deptID] = " + Int32.Parse(Row["deptID"].ToString()); //增加部门人员
foreach (DataRowView uRow in duTree)
{
AddChildNode(uRow["userName"].ToString());
}

AddTree(Int32.Parse(Row["deptID"].ToString()), Node); //再次递归
}
}
}
给个小例子,可看一下,把思路变一下即可
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
顺子说故事
2011-07-04 · 超过55用户采纳过TA的回答
知道小有建树答主
回答量:185
采纳率:0%
帮助的人:132万
展开全部
你的栏目信息中的大类和小类都是存到数据库中的,后台进行添加,前台只需要把他们取出后动态绑定到<ul>列表中的<li>标签中即可。
追问
有没有例子啊,发给我看一下。我是初学者,不懂啊!
追答
你把信息从后台数据库中取出能做到吧?然后把前台的html标签在后台用StringBuilder追加到一起再嵌入到前台即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
372533079
2011-07-05 · 超过34用户采纳过TA的回答
知道答主
回答量:142
采纳率:0%
帮助的人:93.1万
展开全部
你可以使用 TreeView 控件 自带的树形菜单.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-06
展开全部
静态网页:网页三剑客,/VBscipt/Javascript
动态网页:ASP/JSP/PHP/.NET/CGI

这些软件 我这里多有下载

另外,虚机团上产品团购,超级便宜
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式