網站導航是指當用戶瀏覽網站時,網站所提供的指引標志,可以使用戶清楚地知道目前所在網站中的位置。
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=;uid=;pwd=;database=xxgl"; 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:如果在上面文件中不存在的網頁中添加控件是沒有用的。