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

0

単なる提案ですが、あなたのケースでは .IsEnabled を使用する方がより良いアプローチになるかもしれません(あなたが尋ねた特定の質問を無視して)? ほとんどのメニューには、完全なメニューと、メニュー エントリの有効化/無効化が表示されます。それはあなたの質問に対する正確な解決策ではありませんが、考える価値があるかもしれません。

于 2013-09-24T08:48:03.783 に答える
0

CSSスタイルを設定することはできませんdisplay=none;か?

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

displayまたは、が に設定されているクラスを追加しnoneます。

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