ASP.NET站点导航控件

网站导航是指当用户浏览网站时,网站所提供的指引标志,可以使用户清楚地知道目前所在网站中的位置。

ASP.NET中主要提供了3个控件设置网站导航结构。

TreeView Menu SiteMapPath

一、TreeView控件

TreeView由一个或多个节点构成,也就是由多个TreeNode构成

主要属性:

ExpandDepth

获取或设置默认情况下TreeView控件展开的层次数。默认等于-1,全部展开

2.Nodes

用于获取TreeView控件中的TreeNode对象集合。可通过特定方法,对树形结构中的节点进行添加、删除。修改等操作。

SelectedNode属性

用户获取用户选中节点的TreeNode对象。

TreeView绑定数据库数据

public void BindDataBase()
    {
        SqlConnection Con = new SqlConnection();
        Con.ConnectionString = @"server=;u;
        SqlDataAdapter da = new SqlDataAdapter("select * from 教师", Con);
        DataSet ds = new DataSet();
        da.Fill(ds);
        TreeNode tree1 = new TreeNode("教师名称");
        TreeView1.Nodes.Add(tree1); //添加根节点
        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            TreeNode tree2 = new TreeNode(ds.Tables[0].Rows[i][1].ToString());
            tree1.ChildNodes.Add(tree2);
            for (int k = 0; k < ds.Tables[0].Columns.Count; k++)
            {
                TreeNode tree3 = new TreeNode(ds.Tables[0].Rows[i][k].ToString());
                tree2.ChildNodes.Add(tree3);
            }

        }
    }

TreeView绑定XML文件

1.添加TreeView控件、XMLDataSource控件

2.配置XMLDataSource数据源为XMLFile.xml

3.将TreeView控件的DataSourceID属性设置为XMLDataSource1

XMLFile.xml文件代码如下:

<?xml version="1.0" encoding="utf-8" ?>
<Root url="Default.aspx" name="学生信息" describe="studentInfo">
  <Parent url="class1.aspx" name="一班" describe="classOne">
    <Child url="stu11.aspx" name="小明" describe="xiaoming"></Child>
    <Child url="stu12.aspx" name="小亮" describe="xiaoliang"></Child>
  </Parent>
  <Parent url="class2.aspx" name="二班" describe="classTwo">
    <Child url="stu21.aspx" name="小明" describe="xiaoming"></Child>
    <Child url="stu22.aspx" name="小亮" describe="xiaoliang"></Child>
  </Parent>
</Root>

名称是自己定义的。

这个时候控件中显示的还不是实际的学生信息,而是显示的节点

4.在“TreeView任务” 快捷菜单中选择“编辑TreeNode数据绑定”命令,打开对话框,添加Root,Parent,Child三个节点,然后在属性面板中分别设置

相对应的属性,NavigateUrlField属性设置为url,TextField属性设置为name,ValueFile属性设置为describe;

使用TreeView控件实现站点导航:

1.先添加web.sitemap文件,在项目上右击,添加新项,选择站点地图。添加完成之后

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
    <siteMapNode url="Default3.aspx" title="学生信息"  description="studentInfo">
      <siteMapNode url="Default.aspx" title="一班"  description="">
        <siteMapNode url="Default2.aspx" title="小明"  description="" />
        <siteMapNode url="" title=""  description="" />
      </siteMapNode>
    </siteMapNode>
</siteMap>

2.控件实现站点导航,都需要SiteMapDataSource控件。在工具菜单数据下面。

SiteMapDataSource控件会默认绑定web.sitemap文件。只需要将控件绑定给TreeView就行了。

设置TreeView的DataSourceID为SiteMapDataSource的id就行了。

怎样避免在客户端闪处理TreeView控件展开事件
动态填充TreeView控件的节点时,将TreeView控件的EnableClientScript属性设置为false。

Menu控件

Menu控件构建与windows应用程序类似的菜单栏

DisappearAfter属性

获取或设置当鼠标指针离开Menu控件后菜单的延时时间

Orientation

指示显示方向:

Orientation的属性值为Horizontal 水平 ,Vertical 垂直显示

Menu控件绑定xml文件和实现站点导航同上,无多大差别。

如果要隐藏web.sitemap中的根节点,必须将SiteMapDataSource控件中的ShowStartingNode属性设置为false(默认是true)

SiteMapPath控件

SiteMapPath控件用于显示一组文本或图像超链接,以便在使用最少页面空间的同时更加轻松地定位当前所在网站的位置

重要属性:

ParentLevelsDisplayed属性

设置当前节点的父节点显示数量,默认是-1;全部显示

PathDirection属性

有两种显示方向可供选择,即CurrentToRoot和RootToCurrent。

RootToCurrent。表示这样显示: 根节点 >父节点 >子节点

CurrentToRoot表示这样显示: 子节点 > 父节点 > 根节点

SiteMapPath控件使用十分方便,控件会自动读取.sitemap站点地图文件中的信息。

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode url="" title=""  description="">
    <siteMapNode url="Default.aspx" title="首页"  description="" >
      <siteMapNode url="News.aspx" title="新闻"  description="">
        <siteMapNode url="ns.aspx" title="时事新闻"></siteMapNode>
        <siteMapNode url="ns1.aspx" title="娱乐新闻"></siteMapNode>
      </siteMapNode>
    </siteMapNode>
  </siteMapNode>
</siteMap>

然后在这些页面中添加SiteMapPath控件就行了。

ps:如果在上面文件中不存在的网页中添加控件是没有用的。