权限验证问题已经成功了
比如:
我现在实现的是当经济系的管理人登录时就只显示经济系的人员的信息
但是树形菜单所有信息部门都还在。所以我点击其他的系他还是可以看到啊
所以我想通过权限来判断节点显示与不显示我想实现:当经济系的管理人登录时就只显示经济系的人员的信息 
    而且:旁边的树形菜单只显示经济系
这样它就可以不能点击其他的系了,也就不会越界了啊!各位高手快进来帮帮忙啊。

解决方案 »

  1.   

    private void DisplayMenu()
        {
    User user = Session["User"] as User; IList<Sys_Role_Right> srr = Sys_Role_RightBLL.GetParentByRoleId(long.Parse(user.RoleId.ToString()));
    foreach (Sys_Role_Right sysrr in srr)
    {
    IList<Sys_Right> list = Sys_RightBLL.GetRightBy2(sysrr.Rf_right_code, "ROOT_MENU");
    foreach (Sys_Right item in list)
    {
    AccordionPane ap = new AccordionPane();
    Label lbltext = new Label();
    lbltext.Text = item.right_Text;
    ap.HeaderContainer.Controls.Add(lbltext);
    string nodeid = item.right_Code; IList<Sys_Role_Right> srr2 = Sys_Role_RightBLL.GetParentByRoleId(long.Parse(user.RoleId.ToString()));
    foreach (Sys_Role_Right sysrr2 in srr2)
    {
        IList<Sys_Right> list1 = Sys_RightBLL.GetRightBy3(sysrr2.Rf_right_code, nodeid);

    foreach (Sys_Right childNode in list1)
    {
    LinkButton lb = new LinkButton();
    lb.Text = childNode.right_Text + "<br/>";
    string url = ResolveUrl(childNode.right_Url);
    lb.CommandName = "lbNav";
    lb.CommandArgument = url;
    ap.ContentContainer.Controls.Add(lb);
    }
    } Accordion1.Panes.Add(ap);
    }
    }
        }
    这是用的Accordion控件   语法都差不多  体会下吧
      

  2.   

    我觉得将这棵树全部根节点写出来,在后台用html写出来,然后在前台显示,之后ajax 获取,想要那个树叶就那个树叶
      

  3.   

    太简单了,不知道怎么回答你,因为你没有问题任何实际的编程问题。你能“动态产生节点”(那么你又是怎么取得节点的Text和Value的呢?),却不知到产生节点时判断该不该产生节点,我无法理解你为什么会这样!是不是因为产生节点的代码是别人写的所以不会?那就理解别人的代码先。想不出没有代码供你抄。不如你先写一点,提出具体的问题,再说。
      

  4.   

    既然你是手动创建的节点,那么创建节点的之前不是可以得反登陆人的权限吗? 直接根据权限不同,确定生成节点不就OK了吗  加几个 IF 语句就可以了吧
      

  5.   

    哈哈 楼上都说的好轻巧 唉 我看了半天 那个grade怎么为空 还是不知道 悲剧咯