0

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

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;

请注意,它说的是“隐藏”而不是删除。

如果没有,可以隐藏它们,还有其他方法吗?

4

3 回答 3

1

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

我希望这可以帮助其他人摆脱我所经历的头痛。

于 2013-09-24T09:10:56.370 回答
0

你不能只设置 CSS-styledisplay=none;吗?

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

或者添加一个display设置为的类none

UserMenu.FindItem("FindMerchant").Attributes.Add("class", "invisible");
于 2013-09-24T08:18:28.073 回答
0

只是一个建议,但也许在您的情况下使用 .IsEnabled 会是更好的方法(忽略您提出的具体问题)?大多数菜单会向您显示完整菜单并启用/禁用菜单条目。这不是您问题的完全解决方案,但可能值得考虑。

于 2013-09-24T08:48:03.783 回答