我有一个显示树级别的页面,如下所示:
如果用户以“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>
我对如何隐藏最后一级树视图非常模糊。请帮我!谢谢。
答案 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
}
}
}
它不是推荐的遍历树的方法。 这是经过测试的代码,可以满足您的要求,如果您还有其他需要,请告诉我。
希望它有所帮助!