LUKIYA'S NEVERLAND

春去秋来,花谢花开。


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 ();