2013-06-07 17 views

答えて

11

これは古典的なASP.NET(ないMVC)であり、あなたがMasterPageを使用しているなら、あなたはMasterPagePage_Loadイベントでデフォルトのタイトルを設定することができます。

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

マスターページコードの後ろに[this.Title = "Whatever";]を設定するか、HTMLのデフォルトのタイトルを指定することもできます。

5

あなたはこれを行うことができます:Set

をこの

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

のような、コード内のaspxヘッダー何かが背後にあるページロードイベント内でこれを置く:

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

私はこれがあなた

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

役立つことを願っていますこれは私がこれらのソリューションの同様の問題とどれもが私のためによく働いていた便利

1

です。問題は、ページの発注制御イベントが原因です。私のケースでは、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の要件を持っていますので、あなたがそれを避けようとしているのであれば、これはあなたのために働くつもりはありません。

関連する問題