日期:2014-05-17  浏览次数:20536 次

TreeView做页面导航时关于修改TreeNode属性的疑惑?
本帖最后由 gutar0000 于 2013-01-14 19:23:51 编辑
用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
            {
               &n