master文件:<asp:ContentPlaceHolder ID="MenuContent" runat="server" >
        
        <asp:TreeView ID="TVLeftMenu" runat="server" ImageSet="Msdn" NodeIndent="10" 
                ShowLines="True" onselectednodechanged="TVLeftMenu_SelectedNodeChanged"  >
        <ParentNodeStyle Font-Bold="False" />
        <HoverNodeStyle BackColor="#CCCCCC" Font-Underline="True" ForeColor="White" />
        <SelectedNodeStyle BackColor="#CCCCCC" Font-Underline="False" ForeColor="White" HorizontalPadding="3px" VerticalPadding="2px" />
        <NodeStyle Font-Names="Verdana" ForeColor="Black" HorizontalPadding="3px" NodeSpacing="1px" VerticalPadding="3px" />
         
         <Nodes>
         <asp:TreeNode Text="Expense Report " Value="Report" NavigateUrl="~/Entity.aspx" />
         <asp:TreeNode Text="Approval" Value="Approval" NavigateUrl="~/Entity.aspx" />
         <asp:TreeNode Text="Report" Value="Report" NavigateUrl="~/Entity.aspx" />
         <asp:TreeNode Text="Settings" Value="Settings" Expanded="true" >
             <asp:TreeNode Text="Entity" Value="Entity" NavigateUrl="~/Entity.aspx" />
             <asp:TreeNode Text="Department" Value="Dept" NavigateUrl="~/Dept.aspx" />
             <asp:TreeNode Text="Position" Value="RPosition" NavigateUrl="~/Position.aspx" />           
             <asp:TreeNode Text="Employee" Value="Emp" NavigateUrl="~/Employee.aspx" />
             <asp:TreeNode Text="Expense Item" Value="RItem" NavigateUrl="~/Policy.aspx" />            
             <asp:TreeNode Text="Policy" Value="Policy" NavigateUrl="~/Policy.aspx" />
             <asp:TreeNode Text="Vendor" Value="Vendor" NavigateUrl="~/Vendor.aspx" />
         </asp:TreeNode>
         </Nodes> 
        </asp:TreeView> 
        </asp:ContentPlaceHolder>entity.aspx.cs文件
 protected void Page_Load(object sender, EventArgs e)
    {
        ContentPlaceHolder mpContentPlaceHolder;
        //得到 master里面包含Treeview的 contentPlaceHolder 
        mpContentPlaceHolder = (ContentPlaceHolder)Master.FindControl("MenuContent");
        if (mpContentPlaceHolder != null)
        {
            TreeView tr = (TreeView)mpContentPlaceHolder.FindControl("TVLeftMenu");
            foreach (TreeNode tn in treeNode.Nodes)
            {
                if (tn.Text = "entity")
               {
                   tr.SelectedNodeStyle.BackColor = Color.Red;
                }
                else
                {               }
          }
        }
}
 
这个CS文件该如何修改才能实现功能?即实现找到节点TEXT为entity的,设置此节点背景色为RED.

解决方案 »

  1.   

    看你的遍历没有什么问题啊.思路是没有问题.如果有运行不对,那你自己debug跟一下,看看吧.
      

  2.   

    entry是第二层Node,你只遍历了一层
      

  3.   

    protected void Page_Load(object sender, EventArgs e)
        {
            ContentPlaceHolder mpContentPlaceHolder;
            //得到 master里面包含Treeview的 contentPlaceHolder 
            mpContentPlaceHolder = (ContentPlaceHolder)Master.FindControl("MenuContent");
            if (mpContentPlaceHolder != null)
            {
                TreeView tr = (TreeView)mpContentPlaceHolder.FindControl("TVLeftMenu");
      foreach (TreeNode tn1 in tr)
    {

                foreach (TreeNode tn in tn1.Nodes)
                {
                    if (tn.Text = "entity")
                   {
                       tr.SelectedNodeStyle.BackColor = Color.Red;
                    }
                    else
                    {               }
              }
    }
            }
    }
     
      

  4.   

     为什么他说找不到TVLeftMenu?
      

  5.   

    http://download.csdn.net/source/1413899看看这个树形结构……很不错哟……
      

  6.   

    这在传统WebForm的Control模型中是做不到的,因为一旦URL转跳了,Control就失去状态了。你只能在Master的Page_Load里面遍历TreeNode,找出与当前URL匹配的那个,然后改变它的样式。
      

  7.   


    但是我是要在其他页面调用母版页啊.那我该怎么设置这个treenode呢才实现节点背景色呢