C# 如何在treeview C中删除或隐藏最后一级树节点#
我有一个显示树级别的页面,如下所示: 如果用户以“admin”登录,他/她可以查看树级别的完整深度(如上图)。但是,如果用户以“销售人员”身份登录,他/她只能查看('TESTING SDN BHD'、'ABC')、('SAMPLE SDN BHD'、'DEF')。这意味着销售人员无法查看“A塔”、“B塔”、“C塔” 我尝试将maxdatabinddepth设置为2,但它也会显示树的所有级别 我的ASPX代码: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
<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,因此此方法不适用于我。但无论如何,谢谢。