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="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
                {                }
            }
        } 
}
麻烦帮忙看看不知道为什么 运行结果不成功

解决方案 »

  1.   

    onselectednodechanged="TVLeftMenu_SelectedNodeChanged" 这个事件在代码里写了吗
      

  2.   

    你这样写不行! 
    foreach(TreeNode tn in tr.Nodes)
                {
                    if (tn.Text.ToLower() == "entity")
                    {
                       ******
                    }
                    else
                    {                }
                }
    除了改正错误,你这样并没有遍历Node的ChikeNode,应该用递归方法查找
      

  3.   

    兄弟,我给两个方法,第一个时绑定第一级节点,第二个是绑定子节点(依次,递归原理):
        private void initTree()
        {
            DataRow[] drs = dt.Select("ParentID=0", "ID asc");
            for (int i = 0; i < drs.Length; i++)
            {
                TreeNode tn = new TreeNode(drs[i][1].ToString());
                tn.SelectAction = TreeNodeSelectAction.Select;
                tn.Expanded = false;
                this.TreeView1.Nodes.Add(tn);
                LoadTree(tn, Convert.ToInt32(drs[i][0]));
            }
        }    private void LoadTree(TreeNode tn, int parentid)
        {
            DataRow[] drs = dt.Select("ParentID=" + parentid, "ID asc");
            for (int i = 0; i < drs.Length; i++)
            {
                TreeNode child = new TreeNode(drs[i][1].ToString());
                tn.SelectAction = TreeNodeSelectAction.Select;
                child.Expanded = false;
                tn.ChildNodes.Add(child);
                LoadTree(child, Convert.ToInt32(drs[i][0]));
            }
        }