C# 如何在treeview C中删除或隐藏最后一级树节点#

C# 如何在treeview C中删除或隐藏最后一级树节点#,c#,asp.net,treeview,C#,Asp.net,Treeview,我有一个显示树级别的页面,如下所示: 如果用户以“admin”登录,他/她可以查看树级别的完整深度(如上图)。但是,如果用户以“销售人员”身份登录,他/她只能查看('TESTING SDN BHD'、'ABC')、('SAMPLE SDN BHD'、'DEF')。这意味着销售人员无法查看“A塔”、“B塔”、“C塔” 我尝试将maxdatabinddepth设置为2,但它也会显示树的所有级别 我的ASPX代码: <cc1:PSSTreeView ID="tvTreeProject" run

我有一个显示树级别的页面,如下所示:

如果用户以“admin”登录,他/她可以查看树级别的完整深度(如上图)。但是,如果用户以“销售人员”身份登录,他/她只能查看('TESTING SDN BHD'、'ABC')、('SAMPLE SDN BHD'、'DEF')。这意味着销售人员无法查看“A塔”、“B塔”、“C塔”

我尝试将maxdatabinddepth设置为2,但它也会显示树的所有级别

我的ASPX代码:

<cc1:PSSTreeView ID="tvTreeProject" runat="server" ShowLines="True" TreeData="Tree"
            HiddenFieldTextBoxId="HFProject" NodeClickJSFunction="SetTreeDiv" ExpandAllOnRefresh="True"
            DisplayDivId="divProjectDisplay" AutoGenerateDataBindings="True" MaxDataBindDepth="2" 
            ExpandDepth="FullyExpand" ShowExpandCollapse="True">
        </cc1:PSSTreeView>


我对如何隐藏树状视图的最后一级相当模糊。请帮帮我!谢谢。

您可以在母版的
Page\u Load
事件或用于显示
treeView
的任何页面中处理您的树

protected void Page_Load(object sender, EventArgs e)
{
  if (salesPerson)
  {
    TreeNodeCollection nodes = TreeView1.Nodes;
    foreach (TreeNode item in nodes)//TESTING SDN BHD
    {
     foreach (TreeNode item2 in item.ChildNodes)//ABC
     {
       for (int i = 0; i < item2.ChildNodes.Count; i++)
       {
         item2.ChildNodes[i].Text = "";//TOWERs to empty string, it's hiding the node
       }
       item2.Collapse();//It will Collapse the paretn node to hide space of child nodes
     }
   }
 }
受保护的无效页面加载(对象发送方,事件参数e)
{
if(销售人员)
{
TreeNodeCollection节点=树视图1.节点;
foreach(节点中的TreeNode项)//测试SDN BHD
{
foreach(item.ChildNodes中的TreeNode item2)//ABC
{
对于(int i=0;i
这不是遍历树的推荐方法。 这是经过测试的代码,以满足您的要求,如果您还需要其他任何东西,请告诉我


希望有帮助!

获取/更改管理员/销售人员所需深度的数据将是一个很好的解决方案,绑定后删除节点是另一个选项,可以使用jQuery进行此操作。我正在使用Web.sitemap填充treeview控件。在这种情况下,节点集合的计数为0,因此此方法不适用于我。但无论如何,谢谢。