隐藏用户菜单而不是删除

本文关键字:删除 用户 菜单 隐藏 | 更新日期: 2023-09-27 18:32:36

是否有可能隐藏用户菜单而不是删除它们?现在,我正在做:

string currentPage = System.IO.Path.GetFileName(Request.Url.ToString());            
if (currentPage.Equals("Default.aspx"))
{
    UserMenu.Items.Remove(UserMenu.FindItem("FindMerchant"));
    UserMenu.Items.Remove(UserMenu.FindItem("Ladder"));
}

但是删除UserMenu的问题在于,当我尝试使用页面上的搜索功能时,它会导致一些视图状态问题。因此,我需要执行以下操作,而不是删除:

UserMenu.Items.hide(UserMenu.FindItem("FindMerchant"));

UserMenu.FindItem("FindMerchant").Visible = False;

请注意,它显示"隐藏"而不是删除。

如果不能隐藏它们,还有别的办法吗?

隐藏用户菜单而不是删除

2 天后,我终于意识到问题是由在错误的位置调用该方法引起的。我在page_init中称呼它,而不是Page_Load。

我希望这能为我所经历的头痛省去其他人。

你不能

只设置CSS风格的display=none;吗?

UserMenu.FindItem("FindMerchant").Style.Add(HtmlTextWriterStyle.Display, "none");

或者添加一个类,其中display设置为 none

UserMenu.FindItem("FindMerchant").Attributes.Add("class", "invisible");

只是一个建议,但也许使用 .在您的情况下,IsEnabled 将是更好的方法(忽略您提出的特定问题)?大多数菜单显示完整菜单并启用/禁用菜单条目。这不是您问题的确切解决方案,但也许值得一思。