是否有可能隐藏用户菜单而不是删除它们? 现在,我在做:
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;
请注意,它表示“隐藏”而不是删除。
如果没有可以隐藏它们,还有另外一种方法吗?
答案 0 :(得分:1)
2天后,我终于意识到问题是由于在错误的地方调用该方法引起的。我在page_init中调用它,而不是Page_Load。
我希望这能帮助别人解决我经历的头痛问题。
答案 1 :(得分:0)
你不能只设置CSS样式display=none;
吗?
UserMenu.FindItem("FindMerchant").Style.Add(HtmlTextWriterStyle.Display, "none");
或者添加display
设置为none
的课程:
UserMenu.FindItem("FindMerchant").Attributes.Add("class", "invisible");
答案 2 :(得分:0)
只是一个建议,但也许使用.IsEnabled会更好地处理您的情况(无视您提出的具体问题)? 大多数菜单显示完整菜单并启用/禁用菜单条目。 这不是你问题的完全解决方案,但也许值得一想。