【问题标题】:How to hide particular listitems that are used for making a menu for particular users?如何隐藏用于为特定用户制作菜单的特定列表项?
【发布时间】:2014-11-22 17:54:56
【问题描述】:

我有一个列表视图,用于在母版页中制作菜单,当用户登录母版页时,应隐藏某些列表项或将可见性设置为 false。我在下面附上了我的清单项目。建议我一些解决方案。

<div id="cssmenu">
    <ul>
        <li class="active"><a href="HomePage.aspx"><span>HOME</span></a></li>
        <li class="has-sub"><a href="#"><span>MASTER</span></a>
        <ul>
            <li> <a href="InsDet.aspx"><span>INS MASTER</span></a></li>
            <li> <a href="OperDet.aspx"><span>OPER MASTER</span> </a></li>
            <li> <a href="EmployDet.aspx"><span>EMPLOY MASTER</span></a></li>
            <li class="last"><a href="LoginDet.aspx"><span>LOGIN DETAILS</span></a> </li>
        </ul>
        </li>
        <li><a href="Allot.aspx"><span>NEW CAR</span></a> </li>
        <li><a href="Progress.aspx"><span>PROGRESS</span></a></li>
     </ul>
</div>

当特定员工登录时,我需要从我的列表中隐藏 Oper Master 和 Employ Master,而当管理员登录时这些应该可见。

【问题讨论】:

  • 你试过什么?如果我有这样的事情,我会在我的代码隐藏中检查用户并根据用户呈现菜单并将其放置在页面上

标签: c# asp.net


【解决方案1】:

我会给你一个开始,你可以添加其余部分:

// Get employee from Session
Employee employee = (Employee)Session["Employee"];

// Check if employee exists
if(employee != null)
{
    RenderMenu(employee);
}

// Method to render list
private void RenderMenu(Employee employee)
{
    StringBuilder _menu = new StringBuilder();
    _menu.Append("<ul>");

    // Property boolean that indicates if the employee is an admin
    if(employee.IsAdmin)
    {
        //Add items for admin
    } 

    _menu.Append("</ul>");

    // Panel on the aspx page where you add the menu control
    this.pnlMenu.Controls.Add(new LiteralControl() { Text = _menu.ToString() });
}

【讨论】:

    猜你喜欢
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多