Ev.*_*Ev. 5 c# asp.net inheritance findcontrol hyperlink
希望你有一个愉快的星期五和东西...好吧,所以这是我的问题:
我的所有ASPX页面都继承自一个名为BasePage的基类.BasePage继承自:
System.Web.UI.Page
Run Code Online (Sandbox Code Playgroud)
现在,如何从我的页面基页访问/设置我的aspx页面中的控件?我试过这个:
HyperLink hypMainMenu = (HyperLink)Page.FindControl("hypMainMenu");
hypMainMenu.NavigateUrl = AppConfiguration.AppSettings.Urls.MainMenu;
Run Code Online (Sandbox Code Playgroud)
但是hypMainMenu总是空的 - 我找不到这个混蛋.有任何想法吗?或者这是一种不好的做法,有人可以推荐一种更好的方法吗?
提前致谢!
尽管什么是好的实践和什么不是好的实践是非常主观的,但我必须说,尝试从其基类的控件访问任何内容都是不好的实践。基类应该只包含与继承它的所有类相关的代码,并且您如何知道将来编写的每个页面都将具有此控件?
解决您的问题的更好方法(我假设您的主菜单代码仅在一个地方)是编写一个UserControl和 并将其包含在每个页面上。UC如果您需要使用该控件执行特定操作,可以在's中执行CodeBehind。