如何在树视图C#

时间:2017-03-06 05:48:30

标签: c# asp.net treeview

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

enter image description here

如果用户以“admin”身份登录,他/她可以查看树级别的完整深度。(如上图所示)。但如果用户登录为“销售人员”,他/她只能查看('测试SDN BHD','ABC'),('SAMPLE SDN BHD','DEF')。这意味着推销员无法查看“TOWER A”,“TOWER B”,“TOWER 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>

我对如何隐藏最后一级树视图非常模糊。请帮我!谢谢。

1 个答案:

答案 0 :(得分:1)

您可以在Page_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
     }
   }
 }

它不是推荐的遍历树的方法。 这是经过测试的代码,可以满足您的要求,如果您还有其他需要,请告诉我。

希望它有所帮助!