2017-03-06 274 views
-1

我有一个页面,显示树形层级象下面这样:如何删除或隐藏树状C#最后一级树节点

enter image description here

如果用户登录为“管理员”,他/她可以查看树的全部深度(如上图)。但如果用户登录为“销售员”,他/她只能查看('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> 

我很模糊有关如何隐藏树状的最后一级。请帮帮我!谢谢。

+0

为admin/salesman提取/更改所需深度的数据将是很好的解决方案,绑定之后删除节点是另一个选项,可以使用jQuery进行此操作。 – Anil

回答

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 
    } 
    } 
} 

它不是推荐的遍历树的方式。 这是经过测试的代码,以满足您的要求,如果您需要其他任何东西,请告诉我。

希望它有帮助!