如何在页面加载时动态更改aspx页面的标题

我有一组ASPX页面,其中每个页面都有不同的标题,但我想为没有标题的页面设置默认标题。 默认标题必须是可配置的。

如果这是经典的ASP.NET(而不是MVC)并且您正在使用MasterPage那么您可以在MasterPage中的Page_Load事件中设置默认标题:

 protected void Page_Load(object sender, EventArgs e) { if (string.IsNullOrEmpty(Page.Title)) { Page.Title = ConfigurationManager.AppSettings["DefaultTitle"]; //title saved in web.config } } 

你可以这样做:

设置这样的aspx头

    

在后面的代码中把这个放在页面加载事件中:

 if(!IsPostBack) { myCaption.InnerHtml = "Hope this works!" } 

我希望这能帮到您

我有类似的问题,这些解决方案都不适合我。 问题源于页面的订单控制事件触发。 在我的例子中,我有一些代码需要在Page_load事件中(这是因为这是我们有一个Request对象可以使用的第一个事件)。 该代码还需要在可以设置标题之前运行。 我网站上的其他页面只能在页面Ctor中设置所需的标题,但由于此页面需要首先询问响应对象以获取信息,因此这是一个问题。 这样做的问题是,当我们到达Page_load事件时,母版页已经创建了页面标题部分,而我不希望在我的母版页面中只有我网站上的单个页面需要垃圾。 我克服这个问题的简单方法是在页面的内容部分插入一些内嵌的javascript:

   ... the rest of the content page goes here ...  

有了这个,您可以自由设置Page_Load事件中的标题,并在下载此代码行后立即设置。 当然,我的网站已经有了JS要求,所以如果你想避免这种情况,那么这对你不起作用。

在您的母版页代码中,您可以设置[this.Title = "Whatever";]或者您也可以在HTML中指定默认标题。

 protected void Page_Load(object sender, EventArgs e) { Page.Title = title(); } private string title() { SqlConnection con = new SqlConnection(cs); string cmdstr = "select * from title where id = 2"; SqlCommand cmd = new SqlCommand(cmdstr, con); DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(cmd); con.Open(); da.Fill(dt); con.Close(); if (dt.Rows.Count > 0) { string title = dt.Rows[0]["title"].ToString(); } return title; } 

这很有帮助