用户控件的页面标题可能吗?

时间:2011-03-03 14:36:31

标签: c# asp.net

我有一个调用Search.aspx控件的UCSearch页面。 UCSearch控件执行所有操作,例如获取正在搜索的内容和应显示的内容等。我正在尝试将标题赋予页面。由于我没有任何信息在aspx页面中编写代码,我想在控件中编写它。但是当我尝试在控件中使用Page.Title时,它并没有显示我。我究竟做错了什么??这是在Asp.net和C#。

Page.Title = "Search Results for Newark, NY";

提前致谢!!

4 个答案:

答案 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";
}

** 以上不是确切的解决方案,但可以帮助您直接在页面上进行用户控制。除非您需要遍历页面控件。这只是为了快速帮助。