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
{ }
}
}
}
麻烦帮忙看看不知道为什么 运行结果不成功
<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
{ }
}
}
}
麻烦帮忙看看不知道为什么 运行结果不成功
foreach(TreeNode tn in tr.Nodes)
{
if (tn.Text.ToLower() == "entity")
{
******
}
else
{ }
}
除了改正错误,你这样并没有遍历Node的ChikeNode,应该用递归方法查找
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]));
}
}