从页面基类中查找页面中的控件

时间:2009-05-08 13:28:15

标签: c# asp.net inheritance hyperlink findcontrol

希望你有一个愉快的星期五和东西......好吧,所以这是我的问题:

我的所有ASPX页面都从名为BasePage的基类继承。 BasePage继承自:

System.Web.UI.Page

现在,如何从我的页面基页访问/设置我的aspx页面中的控件?我试过这个:

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

但是hypMainMenu总是空的 - 我找不到这个混蛋。有任何想法吗?或者这是一种不好的做法,有人可以推荐一种更好的方法吗?

提前致谢!

1 个答案:

答案 0 :(得分:3)

尽管什么是好的做法并且不是很好的做法是非常主观的,但我必须说尝试从它的基类控件中访问任何是不好的做法。基类应包含与将继承它的所有类相关的代码,以及您如何知道将来编写的每个页面都具有此控件?

解决问题的一种更好的方法(我假设只在一个地方拥有主菜单的代码)就是写一个UserControl,并将其包含在每个页面上。如果您需要针对该控件执行某些操作,可以在UC的{​​{1}}中执行此操作。