.NET基礎之三個導航控制元件

iDotNetSpace發表於2009-05-25

TreeView控制元件是導航欄的一種,所以該控制元件能繫結的資料格式為xml檔案和站點地圖。
主要屬性:
EnableClientScript.:是否應嘗試使用客戶端指令碼。
ShowCheckBoxes:旁邊應顯示覆選框的節點型別。
ImageSet:獲取或設定用於 TreeView 控制元件的影像組。
ExpandDepth:獲取或設定第一次顯示 TreeView 控制元件時所展開的層次數。
編輯TreeNode資料繫結的時候,手動新增的繫結節點有一個SelectAction 屬性,具體值見下表。

選擇操作

說明

TreeNodeSelectAction.Expand

切換節點的展開和摺疊狀態。相應地引發 TreeNodeExpanded 事件或 TreeNodeCollapsed 事件。

TreeNodeSelectAction.None

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

TreeNodeSelectAction.Select

在選定節點時引發 SelectedNodeChanged 事件。

TreeNodeSelectAction.SelectExpand

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

主要事件:
TreeNodeCheckChanged:選定節點更改後激發。
TreeNodeCollapsed:在TreeNode摺疊後激發。
TreeNodeExpanded:在TreeNode展開後激發。

動態生成節點
if (TreeView1.SelectedNode != null)
{
     TreeNode tn = new TreeNode("node");
      this.TreeView1.SelectedNode.ChildNodes.Add(tn);
}


SiteMapPath控制元件和TreeView差不多,都是導航控制元件。

動態修改記憶體中的站點地圖

private void Page_Load(object sender, EventArgs e)
   {

       //首先我們在這裡註冊一個事件,也就是說在訪問CurrentNode屬性的時候觸發這個事件
       SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(SiteMap_SiteMapResolve);
   }

   SiteMapNode SiteMap_SiteMapResolve(object sender, SiteMapResolveEventArgs e)
   {

       //自定義處理方法獲取並建立當前節點的副本,並同時複製他的上級節點
       SiteMapNode CurrentNode = SiteMap.CurrentNode.Clone(true);       
       SiteMapNode TempNode = CurrentNode;
       int id = nid();
       int page = npage();
       //從下面方法中得到變數

       if (id > 0)
       {
           TempNode.Url = TempNode.Url + "?id=" + id.ToString();
       }
       if (id > 0 && page >= 0)
       {
           TempNode.Url = TempNode.Url + "&page=" + page.ToString();
       }
       else if (page >= 0)
       {
           TempNode.Url = TempNode.Url + "?page=" + page.ToString();
       }
       return TempNode;
   }
修改當前SiteMap的最後一級顯示文字
protected void SiteMapPath1_ItemCreated(object sender, SiteMapNodeItemEventArgs e)
   {

       //該用法要求當前節點在站點地圖中已經存在,如果無該節點,則會報錯
       if (e.Item.ItemType == SiteMapNodeItemType.Current)
       {
           Literal l = e.Item.Controls[0] as Literal;
           if (l != null)

           //temp_lb為string,為想顯示的文字。
               l.Text = temp_lb; 
       }
   }


siteMap控制元件,預設的主站點地圖不得改名,可以存在子站點地圖。
從父站點地圖連結到子站點地圖
在父地圖中新增一個節點,子地圖中的節點都為該節點的子節點。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-604083/,如需轉載,請註明出處,否則將追究法律責任。

相關文章