2009-07-29 5 views
2

私はasp.netサイトのマスターページにJavascriptをレンダリングする特定の要件があります。特定の場所でasp.netマスターページのJavaScriptをレンダリングする

1)位置 - BODYタグ の直前のページの最後にレンダリングする必要があります。2)コントロール - 要求されたときにのみレンダリングします。

JavaScriptをページ上に置いたときにのみレンダリングするWebパーツを作成して#2を解決しました。しかし、私は#1を達成することができませんでした。なぜならWebの部分はjavascriptをbodyタグの中でどこでレンダリングするかを制御できないからです。

誰でもこの問題を解決しましたか?

アドバイスをしてください。

おかげ Sachit

答えて

1

ClientScript.RegisterStartupScriptを使用してみてください、それは正しい</body>タグの上にスクリプトを挿入します。

+0

....ではなく、レンダリングするために....どちらが私にとって重要な要件です:( –

+0

@Sachit - もし「どこで」あなたはそれをレンダリングするためにどのページを意味することにより、 ...私は、スクリプトを登録するヘルパー関数を持つことをお勧めし、その後、プログラムでそれをレンダリングする必要があるページにヘルパー関数を呼び出します。 – JustLoren

+0

実際に私は、スクリプトの正確な位置を意味ところで。私は、このスクリプトは1である必要がただタグの上に。私はClientScript.RegisterStartupScriptを使って、これに近づけることができると思うが、私は、私はそのページに多くのスクリプトをしたし、私が欲しいので、問題がある複数している場合、私は、スクリプトの順序を制御することができないように見えます –

0

RenderControlは、オーバーライドできるMasterPage Event Lifecycleで最後に返すメソッドです。私の推測はそれをそこに置くことだろう。

0

マスターページを使用している場合、最後のボディタグの直前にコンテンツプレースホルダを置くのはなぜですか?コンテンツページは、その特定のプレースホルダにJavaScriptを表示する必要があります。

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server">  


    <asp:ContentPlaceHolder ID="headerContent" runat="server"/> 
</head> 
<body> 
    <form id="mainForm" runat="server"> 
     <asp:ContentPlaceHolder ID="mainContent" runat="server" /> 
     <asp:ContentPlaceHolder ID="footerContent" runat="server" />  
    </form>  

    <asp:ContentPlaceHolder ID="footerJsContent" runat="server"/> 
</body> 
</html> 

コンテンツページはfooterJsContentプレースホルダーの内側に自分のJavaScriptをレンダリングする必要があります。

私にレンダリングする際に経由のみに制御することができます
関連する問題