如何在ASP.NET中实现,网站中常见的,一级菜单:有大类,大类下面有小类。从数据库调用菜单内容。
我有两个表,一个是大类表: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控件来绑定这个数据源,就能实现,但问题是,一个大类如果对应两个以上小类的时候,他就会一个大类名称对应一个小类,同样的一个大类名称,可能会显示两次以上,我想要的结果是显示一个大类名称,然后在他下面显示所有的小类。不知道我说的清楚不? 展开
可以用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控件
方法给你了,至于怎么写程序,自己去写,当然也可找我给你写
有没有实际的例子啊,发一个给我,不胜感激啊!我的邮箱: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); //再次递归
}
}
}
给个小例子,可看一下,把思路变一下即可
有没有例子啊,发给我看一下。我是初学者,不懂啊!
你把信息从后台数据库中取出能做到吧?然后把前台的html标签在后台用StringBuilder追加到一起再嵌入到前台即可。
2011-07-06
动态网页:ASP/JSP/PHP/.NET/CGI
这些软件 我这里多有下载
另外,虚机团上产品团购,超级便宜