2013-06-07 13 views

Antwort

11

Wenn das klassische ASP.NET (nicht MVC) und Sie verwenden MasterPage dann können Sie Standardtitel in Page_Load Ereignis in MasterPage gesetzt:

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

In Ihrem Master-Seitencode hinter könnten Sie [this.Title = "Whatever";] setzen oder Sie könnten auch den Standardtitel im HTML angeben.

5

Sie können dies tun:

Stellen Sie den aspx Header so etwas wie dies

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

Und hinter im Code setzten diese in dem Seitenladeereignis:

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

Ich hoffe, das Sie

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

Dieses hilfreich

1

Ich hatte ein ähnliches Problem helfen und keine dieser Lösungen gut für mich gearbeitet. Das Problem rührt von den Auftragskontrollereignissen für eine Seite her. In meinem Fall hatte ich Code, der im Page_load-Ereignis enthalten sein musste (weil das das erste Ereignis war, mit dem ein Request-Objekt arbeiten konnte). Dieser Code musste auch ausgeführt werden, bevor der Titel festgelegt werden konnte. Andere Seiten in meiner Site konnten einfach den gewünschten Titel in der Seite Ctor setzen, aber da diese Seite zuerst das Antwortobjekt nach Informationen abfragen musste, war das ein Problem. Das Problem dabei ist, dass die Masterseite den Seitenkopfbereich bereits erstellt hat, als wir zum Page_load-Event kamen und ich wollte keinen Müll auf meiner Masterseite, der nur für eine einzelne Seite auf meiner Site benötigt wurde. Meine einfache Hack um dieses Problem zu überwinden, war ein wenig Javascript inline im Inhaltsteil der Seite einzufügen:

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

In diesem Ort, Sie sind frei, die Titel in dem Ereignis Page Load setzen und es wird eingestellt werden, sobald diese Codezeile heruntergeladen wurde. Natürlich hat meine Website bereits eine JS-Anforderung. Wenn Sie also versuchen, dies zu vermeiden, wird dies nicht für Sie funktionieren.