我有一个调用Search.aspx
控件的UCSearch
页面。 UCSearch
控件执行所有操作,例如获取正在搜索的内容和应显示的内容等。我正在尝试将标题赋予页面。由于我没有任何信息在aspx页面中编写代码,我想在控件中编写它。但是当我尝试在控件中使用Page.Title
时,它并没有显示我。我究竟做错了什么??这是在Asp.net和C#。
Page.Title = "Search Results for Newark, NY";
提前致谢!!
答案 0 :(得分:2)
不:
this.Page.Title = "My beautiful title";
工作?
答案 1 :(得分:1)
您应该能够使用控件的Parent属性访问ASPX。将该属性转换为Page(它是WebControl或类似通用的东西),然后设置其Title属性。如果您具有母版页层次结构或将此控件嵌套在其他控件中,则可能需要遍历父层次结构以获得更多级别。
答案 2 :(得分:0)
您还可以从用户控件中触发事件,传递您要显示的标题。然后,您可以在页面上处理此事件,并设置标题。
这确实需要您的aspx页面中的少量代码,但是,至少现在用户控件并不关心标题的位置,控件的父级可以担心它。如果您想要更改此标题的位置,或者甚至将其放在多个位置,则无需更改用户控件。如果您想要样品,请告诉我,我会添加它。
如果你不喜欢这个想法,那么cederlof的答案就可以了,我只是测试了它。
protected void helloBtn_Click(object sender, EventArgs e)
{
this.Page.Title = "hello from control";
}
答案 3 :(得分:0)
**您可以使用命名容器来查找当前控件的父控件。通过这种方式,您可以在页面层次结构中移动。
Quickwatch将帮助您解决问题并构建快速投射声明。对命名容器做更多的研究。
var container = userControl.NamingContainer;
if(container is Page)
{
Page p = container as Page;
p.Title = "Your Title";
}
** 以上不是确切的解决方案,但可以帮助您直接在页面上进行用户控制。除非您需要遍历页面控件。这只是为了快速帮助。