2009-03-11 2 views
3

こんにちはすべて私は問題があります。私はすべてのコンテンツページが継承するマスターページを持っています。このマスターページ内には、Javascriptファイルフォルダ "〜/ Scripts/validation.js"を指すスクリプトタグがありますUsercontrolアクセスコンテンツのページのマスターページからのJavascript

私のコンテンツページでは、validation.jsファイル内の多くの機能を使用する必要のあるさまざまなユーザーコントロールを使用していますしかし、タグとJavaScript関数をcontentpageのcontentholder内に置かないと、usercontrolsはこれらの関数を表示せず、 "OnNameValidation"が定義されていないなどのエラーが発生します。

もちろん、私はJavascriptコードをすべてのページにコピーできますが、Javascript機能のいずれかにバグが見つかると、それは30以上のページとメンテナンスの悪夢です。

私は長年の論文からまだ理解していないのであれば、コンテンツページとそのユーザコントロールなどが関数にアクセスできるように、scriptタグにvalidation.jsファイルのパスを宣言するにはどうすればよいですか? /コード。

答えて

0

あなたがしようとしているのはうまくいくはずですので、javascriptファイルへのパスが間違っていると思われます。 HEADのrunat = "server"タグにリンクがある場合は、 "〜/ Scripts/validation.js"のようにjavascriptファイルしか参照できないことに注意してください。 runat = "server"がなければ、ファイルは見つかりません。あなたは "../scripts/validation.js"のようなことをしなければならないでしょう。

テストとして私はmasterpageでjavascript関数を呼び出そうとするので、不正なファイル参照を除外することができます。

0

このヒントをScottGuから受け取りましたhere

<% if (false) { %> 
    <script src="/Scripts/validation.js" type="text/javascript"></script> 
<% } %> 
0

あなたのjsファイルを割り当てているパスは、おそらくすべてのページには一致していません。

はあなたにユーザーコントロールでのIntelliSenseを可能にしますが、常にfalseと評価ユーザーコントロールを、これを追加します。

script src="../JavaScript/Scriptaculous/scriptaculous.js" 

、スクリプト、MasterPages、ページ&コントロール用に別のフォルダを持っている場合は、この上記のようなものを持っている必要があります。

0

私は現在、自分のサイトでマスターページのソースコードに行き、ContentPlaceHolderの頭と外に次のように置いています。

<head> 
    <asp:ContentPlaceHolder ID="HeadContent" runat="server"> 
    </asp:ContentPlaceHolder> 

    <script src="CP.js" type="text/javascript"></script> 
</head> 
関連する問題