2012-03-30 20 views
0

私は更新パネル上のコントロールを持っています。私はjavascriptコードをupdatePAnelが更新されるたびに実行したい。オブジェクトjsファイルで予想されるエラー

ScriptManager.RegisterStartupScript(this, GetType(), "my_script", "runFunction();", true); 

すべてがうまく働いていた:私はこのようなものを使用しました。そして、私は少しjsのコードとJSファイルを使用するために、自分のコードを変更:

ScriptManager.RegisterClientScriptInclude(this, GetType(), "my_script", "~\Scripts\MyScript.js"); 

をしかし、今、私はMyScript.jsにオブジェクト予想されるエラーを取得します。

何が間違っていますか?

EDIT:

私のJSコード:

var http = getHTTPObject(); // We create the HTTP Object 

function checkFilesExists() { 
    var links = $('.PrIcon').find('a'); 

    for (i = 0; i < links.length; i++) { 
     if (!checkFileExists(links[i].href)) { 
      links[i].parentNode.parentNode.style.visibility = 'hidden'; 
     } 
    } 
} 

checkFilesExists(); 

function checkFileExists(handleRequest) { 
    /*http.onreadystatechange = handleHttpReceiveNewPwd;*/ 
    /*http.setRequestHeader('Content-Type', 'application/pdf');*/ 
    try { 
     http.open('HEAD', handleRequest, false); 
     http.send(null); 
     return http.status == 200; 
    } catch (e) { 
     return false; 
    } 
} 

function getHTTPObject() { 
    if (window.XMLHttpRequest) { // Mozilla, Safari,... 
     var obj = new XMLHttpRequest(); 
     if (obj.overrideMimeType) { 
      obj.overrideMimeType('application/pdf'); 
     } 
    } 
    else if (window.ActiveXObject) { // IE 
     try { 
      var obj = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
      try { 
       var obj = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (e) { } 
     } 
    } 
    if (obj) 
     return obj; 
} 

エラーは、この行で発生します。VARリンク= $( 'PrIcon ')(' A')を見つけます。

+0

おそらくこのエラーを引き起こしている関数 'runFunction()'が必要です。 JavaScriptのコンソール(F12)を見ると、このエラーが発生しますか? –

答えて

0

スクリプトは、いくつかの他の(おそらく、jQueryの)に依存しますが、ScriptManager.RegisterClientScriptIncludeが早すぎるページで<script>タグをレンダリングしているようだ(スクリプトあなたのが依存する前に解釈され、これにより、必要なオブジェクトを作成されていません)。この場合、より良いオプションはScriptManager.RegisterStartupScriptメソッドを使用することですが、代わりにスクリプト本体を渡すのは、スクリプトのアドレスで全体<script>タグに合格しなければならない:

ScriptManager.RegisterStartupScript(updatePanel, updatePanel.GetType(), "a_key", "<script type='text/javascript' src='my_script.js'></script>", false); 

なおaddScriptTagsを設定し、最後のパラメータ、 flagはfalseに設定され、src属性を定義してタグ全体をレンダリングできます。

関連する問題