как динамически изменить заголовок страницы aspx при загрузке страницы

У меня был набор страниц ASPX, в которых каждая страница имела разные заголовки, но я хочу указать заголовок по умолчанию для страниц, у которых нет заголовка. Заголовок по умолчанию должен быть настраиваемым.


person Randhi Rupesh    schedule 07.06.2013    source источник


Ответы (6)


Если это классический ASP.NET (не MVC) и вы используете MasterPage, вы можете установить заголовок по умолчанию в событии Page_Load в MasterPage:

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

Ты можешь это сделать:

Установите заголовок aspx примерно так

<HEAD> 
<TITLE ID=CaptionHere RUNAT="server"></TITLE> 
</HEAD> 

И в коде поместите это внутри события загрузки страницы:

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

Я надеюсь, что это поможет вам

person Chris N.P.    schedule 07.06.2013

У меня была похожая проблема, и ни одно из этих решений не помогло мне. Проблема возникает из-за срабатывания событий управления порядком для страницы. В моем случае у меня был некоторый код, который должен был быть в событии Page_load (это было потому, что это первое событие, с которым у нас есть объект Request для работы). Этот код также необходимо было запустить, прежде чем можно будет установить заголовок. Другие страницы на моем сайте могли просто установить желаемый заголовок на странице Ctor, но поскольку эта страница должна была сначала запросить объект ответа для получения информации, это было проблемой. Проблема заключается в том, что главная страница уже создала раздел заголовка страницы к тому моменту, когда мы доходим до события Page_load, и я не хотел, чтобы на моей главной странице был мусор, который требовался только для одной страницы на моем сайте. Мой простой хак для решения этой проблемы заключался в том, чтобы вставить немного встроенного javascript в часть содержимого страницы:

<asp:Content ID=BodyContent ContentPlaceHolderID=MainContent RunAt=Server>
    <script type="text/javascript">
        document.title='<%=Title%>';
    </script>

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

</asp:Content>

После этого вы можете установить заголовок в событии Page_Load, и он будет установлен, как только эта строка кода будет загружена. Конечно, на моем сайте уже есть требование JS, поэтому, если вы пытаетесь избежать этого, то это не сработает для вас.

person krowe2    schedule 30.03.2017

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;
}

это полезно

person Kanhaiya lal Rajora    schedule 28.04.2015

В коде главной страницы вы можете установить [this.Title = "Whatever";] или указать заголовок по умолчанию в HTML.

person Raheel Khan    schedule 07.06.2013

person    schedule
comment
Добро пожаловать в СО. Хотя этот ответ верен для ручного изменения заголовка. Этот вопрос скорее о том, как изменить заголовок через код. (например, изменение заголовка в зависимости от пользователя, который обращается к странице) - person Mathias; 19.07.2020