【问题标题】:BulletedList - Setting ListItem Visibility to FalseBulletedList - 将 ListItem 可见性设置为 False
【发布时间】:2013-10-18 11:42:59
【问题描述】:

我有以下 if 语句:

if (Roles.IsUserInRole("ModuleRole:Homework.ApproveHomework.Access")) BulletedList1.Visible = true;
    else BulletedList1.Visible = false;

角色基本上是分配给当前登录的用户。BulletedList1 只是主页上的角色列表,用户可以单击这些角色来执行某些操作,例如批准家庭作业、删除甚至添加新工作表。

在上面的 if 语句中,如果登录的用户没有访问 ModuleRole:Homework.ApproveHomework.Access 的权限,整个 BulletedList 就会消失。然而,我想知道的是如何专门选择 BulletedList 中的哪个 ListItem 我希望具有错误的可见性,而不是将整个列表设置为不可见。

由于 ListItem 没有 ID,我可以通过将 if 语句指向特定值来简单地做到这一点吗?

我尝试进行一些搜索并想出了以下代码,但是它不起作用:

BulletedList1.Items.FindByValue("Approve Calls").Visible = true;

感谢您的帮助。

【问题讨论】:

    标签: asp.net visual-studio list visual-studio-2012


    【解决方案1】:

    您不能以这种方式从BulletedList 中隐藏单个ListItem。您要么必须使用不同的控件(例如 RepeaterDataList 等),要么可以使用 CSS。

    试试这个:

    ListItem approveItem = BulletedList1.Items.FindByValue("Approve Calls");
    approveItem.Attributes.CssStyle.Add("display", "none");
    // make it visible:
    approveItem.Attributes.CssStyle.Remove("display");
    

    如果禁用某个项目就足够了,您只需使用approveItem.Enabled = false

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      • 2012-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多