导航控件TreeViewMenuSiteMapPath SiteMapPath
⼀、SiteMapPath
⼀、
导航控件
当前节点要显⽰链接请在
SiteMapPath控件中写 RenderCurrentNodeAsLink="True"
页设置
母板页设置
⼆、母板
⼆、
站点地图
三、
三、站点地
链接地址 url="~/two/a.aspx" 标题 Title ="" ⿏标放上去出现的提⽰: description =""
控件
Menu控件
四、
四、Menu
Ⅰ.静态和动态显⽰
①MaximumDynamicDisplayLevels 菜单⽀持的最⼤弹出数
②StaticDisplayLevels 菜单的静态部分显⽰级别数,默认值为1
StaticDisplayLevels 属性指⽰从根菜单算起,静态显⽰的菜单的层数。例如,如果将 StaticDisplayLevels 设置为 3,菜单将以静态显⽰的⽅式展开其前三层。静态显⽰的最⼩层数为 1,如果将该值设置为 0 或负数,该控件将会引发异常。
Orientation
Ⅱ.横纵向排列
横纵向排列 Orientation
五、动态修改内存中站点地图
SiteMap 类
SiteMap 类是站点的导航结构在内存中的表⽰形式,导航结构由⼀个或多个站点地图提供程序提供。⽆法继承此类。
SiteMap
SiteMapNode 类
表⽰分层的站点地图结构(如 SiteMap 类和实现抽象类 SiteMapProvider 的类所描述的结构)中的⼀个节点。
动态更改
当前节点SiteMapPath
更改当
在需要的
在需要的页
页⾯动态
当前节点要显⽰链接请在
SiteMapPath控件中写 RenderCurrentNodeAsLink="True"
⽹上好多⽅法都是使⽤委托..那个是应⽤到整个动态站点的
我这个⽅法是写在需要动态修改的页⾯⾥⾯需要修改的页的当前节点就会改成你需要动态⽣成的了
我的源码(petshop重构)如下:
SiteMap.CurrentNode.ReadOnly = false;
SiteMap.CurrentNode.Title = Request.QueryString["categoryName"].ToString();
SiteMap.CurrentNode.Url = "Products.aspx?categoryId=" + Request.QueryString["categoryId"].ToString() +
"&categoryName=" + Request.QueryString["categoryName"].ToString();
义数据提供程序√(vs200570
据提供程序√(vs200570)
六、⾃定
六、
⾃定义数
Web.Config
Web.sitemap
控件
TreeView 控件
七、
七、TreeView
添加颜⾊
0 TreeNodeStyle 1级节点
1 TreeNodeStyle 2级节点
2 TreeNodeStyle 3级节点
复选框
Root 根节点
Leaf 叶节点
⼋、TreeView ⾼级使⽤
设计
Ⅰ.ault2.aspx
Ⅰ.ault2.aspx 设计
设置
Ⅱ.Web.Config设置
Ⅱ.Web.Config
数据库表设置
Ⅲ.SQL数据库表设置
Ⅲ.SQL
代码
Ⅳ.Default2.aspx.cs 代码
Ⅳ.Default2.aspx.cs
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//⾸先填充第⼀级节点
DataView dv = drv("select * from big");
foreach (DataRowView datas in dv)
{
//循环数据视图,将相应的值交给⼀个节点对象,然后添加到树上⼜继续添加
TreeNode tn = new TreeNode();
tn.Text = datas["title"].ToString();
tn.Value = datas["bid"].ToString();
tn.Expanded = false;
//添加到TreeView1树上
TreeView1.Nodes.Add(tn);
//调⽤⽅法填充⼆级节点
AddChildNode(tn);
}
}
}
private DataView drv(string query)
{
//根据传来的SQL字符串返回⼀哥数据视图
//在Web.Config⾥设置ConnectionStrings
string connstr = ConfigurationManager.ConnectionStrings["aaConn"].ConnectionString;        SqlConnection conn = new SqlConnection(connstr);
SqlConnection conn = new SqlConnection(connstr);
SqlDataAdapter adapter = new SqlDataAdapter(query, conn);
DataSet ds = new DataSet();
adapter.Fill(ds, "tree");
return ds.Tables["tree"].DefaultView;
}
private void AddChildNode(TreeNode tn)
{
//填充⼆级节点,它需要⼀级节点的Value值,所以送了⼀个完整的根节点对象
int bid = Convert.ToInt32(tn.Value);
DataView dv = drv("select * from class where bid=" + bid + "");
foreach (DataRowView datas in dv)
{
TreeNode ctn = new TreeNode();
ctn.Text = datas["title"].ToString();
ctn.Value = datas["cid"].ToString();
//ctn.Expanded = false;
ctn.NavigateUrl = "thcjpblogs/jiashe.aspx?aa=" + datas["cid"].ToString();
/*
*  XXXXXXXXX添加到⼦节点上XXXXXXXXXXX
*/
tn.ChildNodes.Add(ctn);
}
导航页源码
}
protected void Button1_Click(object sender, EventArgs e)
{//将选中项的值打印出来
if (TreeView1.CheckedNodes.Count > 0)
{
foreach (TreeNode tn in TreeView1.CheckedNodes)
{
//迭代所有被选中的项
if (tn.ChildNodes.Count > 0)
{
//如果被选中项下⾯还有⼦节点
foreach (TreeNode ctn in tn.ChildNodes)
{
//迭代所有⼦节点,把值读出来
Response.Write(ctn.Text + "<br>");
}
}
else
{
//如果没有⼦节点,说明是叶节点,那么直接读取被选值
Response.Write(tn.Text + "<br>");
}
}
}
}
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{//点击了没有链接的节点(前提是其SelectAction为Select)
Label2.Text = TreeView1.SelectedNode.Text;
}
protected void TreeView1_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
{
Label2.Text = "你展开了" + e.Node.Text;
}
protected void TreeView1_TreeNodeCollapsed(object sender, TreeNodeEventArgs e)
{
Label2.Text = "你折叠了" + e.Node.Text;
}
}
}
+ = = = = = = = = = = = = = = = = = = +
附:
Menu 控件之间的⼀些区别
控件之间的⼀些区别
TreeView 和
和 Menu
TreeView
TreeView 和 Menu 控件之间的⼀些区别,以帮助您为特定的⽅案选择适当的控件。
功能Menu TreeView
展开弹出就地展开
按需下载否是
复选框否是
模板是否
布局⽔平和垂直垂直
样式选项是否
选择模型静态级别、动态级别或⽗/根/叶、或按数据项
在此⽰例中,您会看到具有为不同区域和操作配置的各种样式属性(例如,NodeStyle 和 HoverNode
Style)的 TreeView 和 Menu 控件。TreeView 和 Menu 控件都将连接到页上的同⼀ SiteMapDataSource 控件。SiteMapPath 控件正在通过在 fig ⽂件中设置的默认 SiteMapProvider 访问相同数据。
VB Navigation Controls

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。