5

聖金曜日などをお過ごしいただければ幸いです...わかりました。私の質問です。

私のすべてのASPXページは、BasePageという基本クラスから継承しています。BasePageは以下から継承します:

System.Web.UI.Page

では、ページベースからaspxページのコントロールにアクセス/設定するにはどうすればよいですか?私はこれを試しました:

HyperLink hypMainMenu = (HyperLink)Page.FindControl("hypMainMenu");
hypMainMenu.NavigateUrl = AppConfiguration.AppSettings.Urls.MainMenu;

しかし、hypMainMenuは常にnullです-私はろくでなしを見つけることができません。何か案は?それとも、これは悪い習慣であり、誰かがこれを行うためのより良い方法を推奨することができますか?

前もって感謝します!

4

1 に答える 1

3

良い習慣とそうでないことは非常に主観的ですが、基本クラスのコントロールから何かにアクセスしようとするのは悪い習慣であると言わなければなりません。基本クラスには、それを継承するすべてのクラスに関連するコードのみを含める必要があります。また、将来作成するすべてのページにこのコントロールがあることをどのように知っていますか?

問題を解決するためのより良い方法(メインメニューのコードが1か所にあると想定しています)は、を記述しUserControl、それをすべてのページに含めることです。そのコントロールで特定のことを行う必要がある場合は、UC'sで行うことができますCodeBehind

于 2009-05-08T13:34:15.453 に答える