程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET母版頁TreeView導航鏈接問題

ASP.NET母版頁TreeView導航鏈接問題

編輯:關於ASP.NET

最近在網上找一些關於“ASP.NET母版頁TreeView導航鏈接問題”相關資料,很多人都碰到跟我類似的問題,於是我就抽了點時間自己調試一下這個問題了。

首先描述一下我的問題:

當把TreeView控件放到母版頁時,在做頁面導航鏈接的時候,TreeView控件的菜單狀態一直保持為最初設置的狀態,並不會像點擊某個頁面跳轉後還仍然保持點擊的那個狀態。

最簡單的方式,當然是用框架了。問題雖然很容易解決,可我還是想琢磨它一下,於是就寫了個調試程序來分享一下。程序比較粗糙,能達到我想要的效果就可以了,呵呵。 於是,我去MSDN裡面查找一下了關於TreeView控件的相關資料,然後再結合自己的思路,終於讓我寫出來了。

思路:在TreeView控件裡面我只設置了兩個級別(級別增加的話可能要另外再處理)。當我們點擊某一個父節點的時候,把當前父節點用SESSION會話存儲下來,點擊子節點時判斷該節點的父節點是否和SESSION的父節點一致,若是就將該父節點的子級展開,反之跳過。(最好用foreach遍歷該導航菜單)

在程序當中最關鍵的還是要了解一下TreeView控件的SelectAction屬性,這個屬性會涉及到一些控件相關事件,如下所示:

1、TreeNodeSelectAction.Expand:

使節點在展開和折疊狀態之間切換。相應地引發 TreeNodeExpanded 事件或 TreeNodeCollapsed 事件。

2、TreeNodeSelectAction.None:

在選定節點時不引發任何事件

3、TreeNodeSelectAction.Select:

在選定節點時引發 SelectedNodeChanged 事件

4、TreeNodeSelectAction.SelectExpand:

選擇節點時引發 SelectedNodeChanged 和 TreeNodeExpanded 事件。節點只會展開,不會折疊

在我的DEMO裡面我是應用了第一個和所關聯的兩個事件進行編寫的,代碼如下:

在母版頁內觸發以下三個事件:

母版頁PageLoad事件

1 protected void Page_Load(object sender, EventArgs e)
2     {
3         if (!IsPostBack)
4         {
5             //驗證當前Session中是否有節點
6             if (Session["treeNode"] != null)
7             {
8                 TreeNode parentNode = Session["treeNode"] as TreeNode;
9                 //遍歷TreeView的Nodes集合
10                 foreach (TreeNode tn in this.TreeView1.Nodes)
11                 {
12                     //若循環節點的文本與當前節點的文本匹配,展開該節點;反之折疊
13                     if (tn.Text.Trim() == parentNode.Text.Trim())
14                     {
15                         tn.Expand();
16                     }
17                     else
18                     {
19                         tn.Collapse();
20                     }
21
22                 }
23             }
24         }
25     }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved