您的位置:首页 > 其它

.NET基础之三个导航控件

2009-05-22 20:39 239 查看
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控件,默认的主站点地图不得改名,可以存在子站点地图。

从父站点地图链接到子站点地图

在父地图中添加一个节点<siteMapNode siteMapFile="~/mysm.sitemap"/>,子地图中的节点都为该节点的子节点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: