用TreeView绑定SiteMapDataSource做网页导航,发现TreeNode的SelectAction属性默认为None,就想把它
改成Expand,可是问题出现了,无论我把修改SelectAction属性放在 Page_Load 还是Page_PreRender里面都
不行,测试发现TreeView的Nodes.Count=0,但是我在页面中加一个Button,点击Button后TreeNode的SelectAction属性修改了,不解求大家指点。
Web.sitemap的代码:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="~/SendMsg.aspx" title="首页" description="">
<siteMapNode url="" title="节点1.1" description=""></siteMapNode>
<siteMapNode url="" title="节点1.2" description=""></siteMapNode>
<siteMapNode url="" title="节点1.3" description="">
<siteMapNode url="" title="节点1.3.1" description=""/>
<siteMapNode url="" title="节点1.3.2" description=""/>
<siteMapNode url="" title="节点1.3.3" description=""/>
<siteMapNode url="" title="节点1.3.4" description=""/>
</siteMapNode>
<siteMapNode url="" title="节点1.4" description="" >
<siteMapNode url="" title="节点1.4.1" description="" />
<siteMapNode url="" title="节点1.4.2" description=""/>
</siteMapNode>
</siteMapNode>
</siteMap>
TreeView代码:
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" StartingNodeOffset="0" />
<asp:TreeView ID="menuleft"
runat="server"
NodeIndent="0"
DataSourceID="SiteMapDataSource1"
ShowLines="false"
NodeWrap="false"
ShowExpandCollapse="true">
</asp:TreeView>
Page_Load和 Page_PreRender 的代码:
protected void Page_PreRender(object sender, EventArgs e)
{
foreach (TreeNode node in menuleft.Nodes)//menuleft为上面定义的TreeView
{
Travel(node); //递归遍历
}