隐藏UserMenu而不是删除

时间:2013-09-24 08:03:27

标签: c# asp.net

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

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;

请注意,它表示“隐藏”而不是删除。

如果没有可以隐藏它们,还有另外一种方法吗?

3 个答案:

答案 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会更好地处理您的情况(无视您提出的具体问题)? 大多数菜单显示完整菜单并启用/禁用菜单条目。 这不是你问题的完全解决方案,但也许值得一想。