ASP.NET 2.0構建動態導航的Web應用程序(TreeView和Menu )

TreeView 控件關鍵屬性

CheckedNodes                 聲明被選擇的單個或者多個節點
ExpandDepth                   聲明TreeView控件展開的深度
Nodes                               TreeNodeCollection 類型的節點集合
SelectedNode                  當前被選擇的節點
ShowCheckBoxes           聲明是否顯示覆選框
ShowExpandCollapse    聲明展示/摺疊狀態
ShowLines                      聲明節點間是否以線連接
LevelStyles                     指定每個層次的節點的樣式
NodeStyle                       指定節點的默認樣式
RootNodeStyle              指定根節點的樣式
LeafNodeStyle               指定子節點的樣式
SelectedNodeStyle        指定選定節點的樣式
HoverNodeStyle            指定當鼠標移在節點上方時的樣式
ImageUrl properties       指定表示展開/摺疊的圖片的URL路徑

TreeNode關鍵屬性

 

Checked                             標明節點上的複選框的選擇狀態
ImageUrl                             標明節點上所用圖片的URL路徑
NavigateUrl                       當單擊節點時所要導航到的URL路徑
SelectAction                     無導航節點被單擊時所要執行的動作
Selected                             標明當前節點是否被選擇的節點
ShowCheckBox                 標明當前節點是否顯示覆選框
Text                                    節點上的文字

TreeView 事件

CheckChanged               當複選框被選擇或者清除選擇時的所觸發的事件
SelectedNodeChanged  當選擇的節點發生改變時所觸發的事件
TreeNodeCollapsed       當分支被摺疊時所觸發的事件
TreeNodeExpanded       當分支被展開時所觸發的事件
TreeNodeDataBound    當節點被綁定到數據源時所觸發的事件
TreeNodePopulate*       Fired when a PopulateOnDemand node needs content
* Only fired on server if EnableClientScript="false"

使用 SelectedNodeChanged事件

<asp:TreeView ID="Tree" OnSelectedNodeChanged="OnUpdate" RunAt="server">
  
<Nodes>
    
  
</Nodes>
</asp:TreeView>
  .
  .
  .
<script language="C#" runat="server">
void OnUpdate (Object sender, EventArgs e)
{
    
// Get the text of the selected node
    string text = Tree.SelectedNode.Text;
      
}

</script>

按需裝載節點

<asp:TreeView OnTreeNodePopulate="OnPopulate" EnableClientScript="false"
  RunAt
="server">
  
<Nodes>
    
<asp:TreeNode Text="Populate this node on demand"
      PopulateOnDemand
="true" RunAt="server" />
  
</Nodes>
</asp:TreeView>
  .
  .
  .
<script language="C#" runat="server">
void OnPopulate (Object sender, TreeNodeEventArgs e)
{
    
// Called first time the populate-on-demand node is expanded
    TreeNode node = new TreeNode ("This node added dynamically");
    e.Node.ChildNodes.Add (node);
}

</script>

Menu 控件關鍵屬性

Items                                          MenuItemCollection 類型的菜單項的集合
ItemWrap                                  Specifies whether menu item should wrap
Orientation                                標明菜單是縱向排列還是橫向排列
SelectedItem                             標明當前選擇的菜單項
StaticStyle properties              標明靜態菜單的樣式
DynamicStyle properties        標明動態菜單的樣式

MenuItem 控件關鍵屬性

ImageUrl                                    菜單項上所顯示圖片的URL路徑
NavigateUrl                              當菜單項單擊時所要導航的目標路徑
Selected                                    標明當前菜單項是否已經被選中
Text                                           菜單項上的文字 (顯示給最終用戶)
ToolTip                                    當光標暫停或者移過菜單項時所顯示的提示文本
Value                                         菜單項的實際值

Menu事件

 

MenuItemClick  當菜單項被單擊時所觸發的事件
MenuItemDataBound 當菜單項被綁定到數據源時所觸發的事件

使用 MenuItemClick事件

<asp:Menu  OnMenuItemClick="OnClick" RunAt="server">
  
<Items>
    
  
</Items>
</asp:Menu>
  .
  .
  .
<script language="C#" runat="server">
void OnClick (Object sender, MenuEventArgs e)
{
    
// Get the text of the selected menu item
    string text = e.Item.Text;
      
}

</script>

TreeView控件和 Site Maps 關係

<asp:SiteMapDataSource ID="SiteMap" RunAt="server" />
<asp:TreeView DataSourceID="SiteMap" RunAt="server" />

Menus控件和 Site Maps 關係

<asp:SiteMapDataSource ID="SiteMap" RunAt="server" />
<asp:Menu DataSourceID="SiteMap" RunAt="server" />

在配置文件中修改文件名

 

<configuration>
  
<system.web>
    
<siteMap>
      
<providers>
        
<remove name="AspNetXmlSiteMapProvider" />
        
<add name="AspNetXmlSiteMapProvider"
          type
="System.Web.XmlSiteMapProvider, System.Web, "
          siteMapFile
="Acme.sitemap" />
      
</providers>
    
</siteMap>
  
</system.web>
</configuration>

<siteMapNode> 屬性

 

description      節點的描述信息
roles                 指定當前項對哪些角色是可見的*
title                   當前項的標題
url                    當前項導航的目標路徑

Security Trimming

<siteMap>
  
<siteMapNode title="Home" description="" url="default.aspx">
    
<siteMapNode title="Announcements" url="Announcements.aspx"
      description
="Information for all employees" /> 任何人均可見
    
<siteMapNode title="Salaries" url="Salaries.aspx"
      description
="Salary data" roles="Managers,CEOs" /> 只有Manager
和CEO權限的可見
  
<siteMapNode>
</siteMap>

使 Security Trimming生效

 

<configuration>
  
<system.web>
    
<siteMap>
      
<providers>
        
<remove name="AspNetXmlSiteMapProvider" />
        
<add name="AspNetXmlSiteMapProvider"
          type
="System.Web.XmlSiteMapProvider, System.Web, "
          securityTrimmingEnabled
="true"
          siteMapFile
="web.sitemap" />
      
</providers>
    
</siteMap>
  
</system.web>
</configuration>

SiteMapDataSource屬性

Provider                               用來獲得站點導航數據的Provider
SiteMapProvider                用來獲得站點導航數據的Provider的名稱
ShowStartingNode             指定顯示爲根節點的項
StartFromCurrentNode     指定開始節點是否是根節點(false)或者是當前節點(true)默認 = false
StartingNodeOffset            使用層次來指定開始節點 (default = 0)
StartingNodeUrl                 使用URL來指定開始節點

隱藏Site Map根節點

<asp:SiteMapDataSource ID="SiteMap" ShowStartingNode="false"
    RunAt
="server" />
<asp:TreeView DataSourceID="SiteMap" RunAt="server" />

SiteMapPath控件關鍵屬性

CurrentNodeStyle             當前節點的樣式
CurrentNodeTemplate     當前節點的HTML模板
NodeStyle                          非當前節點的樣式
NodeStyleTemplate        非當前節點的HTML模板
PathSeparator                  分隔符所使用的文字 (默認 = ">")
PathSeparatorStyle           分隔符的樣式
PathSeparatorTemplate  分隔符所使用的HTML模板
RootNode                         屬性用來鑑別根節點
CurrentNode                    屬性用來鑑別當前節點

使用 Site Map API

// Write the title of the current node to a Label control
Label1.Text = SiteMap.CurrentNode.Title;

// Write the path to the current node to a Label control
SiteMapNode node = SiteMap.CurrentNode;
StringBuilder builder 
= new StringBuilder (node.Title);

while (node.ParentNode != null{
    node 
= node.ParentNode;
    builder.Insert (
0" > ");
    builder.Insert (
0, node.Title);
}

  
Label1.Text 
= builder.ToString ();



<configuration>
  
<system.web>
    
<siteMap>
      
<providers>
        
<remove name="AspNetXmlSiteMapProvider" />
        
<add name="AspNetXmlSiteMapProvider"
          type
="System.Web.XmlSiteMapProvider, System.Web, "
          securityTrimmingEnabled
="true"
          siteMapFile
="web.sitemap" />
      
</providers>
    
</siteMap>
  
</system.web>
</configuration>

SiteMapDataSource屬性

description      節點的描述信息
roles                 指定當前項對哪些角色是可見的*
title                   當前項的標題
url                    當前項導航的目標路徑

Security Trimming

<configuration>
  
<system.web>
    
<siteMap>
      
<providers>
        
<remove name="AspNetXmlSiteMapProvider" />
        
<add name="AspNetXmlSiteMapProvider"
          type
="System.Web.XmlSiteMapProvider, System.Web, "
          siteMapFile
="Acme.sitemap" />
      
</providers>
    
</siteMap>
  
</system.web>
</configuration>

<siteMapNode> 屬性

 

description      節點的描述信息
roles                 指定當前項對哪些角色是可見的*
title                   當前項的標題
url                    當前項導航的目標路徑

Security Trimming

MenuItemClick  當菜單項被單擊時所觸發的事件
MenuItemDataBound 當菜單項被綁定到數據源時所觸發的事件

使用 MenuItemClick事件

Checked                             標明節點上的複選框的選擇狀態
ImageUrl                             標明節點上所用圖片的URL路徑
NavigateUrl                       當單擊節點時所要導航到的URL路徑
SelectAction                     無導航節點被單擊時所要執行的動作
Selected                             標明當前節點是否被選擇的節點
ShowCheckBox                 標明當前節點是否顯示覆選框
Text                                    節點上的文字

TreeView 事件

CheckChanged               當複選框被選擇或者清除選擇時的所觸發的事件
SelectedNodeChanged  當選擇的節點發生改變時所觸發的事件
TreeNodeCollapsed       當分支被摺疊時所觸發的事件
TreeNodeExpanded       當分支被展開時所觸發的事件
TreeNodeDataBound    當節點被綁定到數據源時所觸發的事件
TreeNodePopulate*       Fired when a PopulateOnDemand node needs content
* Only fired on server if EnableClientScript="false"

使用 SelectedNodeChanged事件

<asp:TreeView ID="Tree" OnSelectedNodeChanged="OnUpdate" RunAt="server">
  
<Nodes>
    
  
</Nodes>
</asp:TreeView>
  .
  .
  .
<script language="C#" runat="server">
void OnUpdate (Object sender, EventArgs e)
{
    
// Get the text of the selected node
    string text = Tree.SelectedNode.Text;
      
}

</script>

按需裝載節點

<asp:TreeView OnTreeNodePopulate="OnPopulate" EnableClientScript="false"
  RunAt
="server">
  
<Nodes>
    
<asp:TreeNode Text="Populate this node on demand"
      PopulateOnDemand
="true" RunAt="server" />
  
</Nodes>
</asp:TreeView>
  .
  .
  .
<script language="C#" runat="server">
void OnPopulate (Object sender, TreeNodeEventArgs e)
{
    
// Called first time the populate-on-demand node is expanded
    TreeNode node = new TreeNode ("This node added dynamically");
    e.Node.ChildNodes.Add (node);
}

</script>

Menu 控件關鍵屬性

Items                                          MenuItemCollection 類型的菜單項的集合
ItemWrap                                  Specifies whether menu item should wrap
Orientation                                標明菜單是縱向排列還是橫向排列
SelectedItem                             標明當前選擇的菜單項
StaticStyle properties              標明靜態菜單的樣式
DynamicStyle properties        標明動態菜單的樣式

MenuItem 控件關鍵屬性

ImageUrl                                    菜單項上所顯示圖片的URL路徑
NavigateUrl                              當菜單項單擊時所要導航的目標路徑
Selected                                    標明當前菜單項是否已經被選中
Text                                           菜單項上的文字 (顯示給最終用戶)
ToolTip                                    當光標暫停或者移過菜單項時所顯示的提示文本
Value                                         菜單項的實際值

Menu事件

 

MenuItemClick  當菜單項被單擊時所觸發的事件
MenuItemDataBound 當菜單項被綁定到數據源時所觸發的事件

使用 MenuItemClick事件

MenuItemClick  當菜單項被單擊時所觸發的事件
MenuItemDataBound 當菜單項被綁定到數據源時所觸發的事件

使用 MenuItemClick事件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章