2017-02-22 3 views
0

ユーザーコントロールで二回呼び出すことはできません私は、ユーザーコントロール内のJavaScriptを持っている:Javascriptが

public void updateStepColor() 
{ 
     ScriptManager.RegisterStartupScript(this, GetType(), "changeProgressActiveStep", "alert("Hello")", true); 
} 

上記の機能は、ユーザーコントロールです。ページが読み込まれ、Webフォームからボタンがクリックされると、Webフォームはユーザーコントロールを呼び出し、ユーザーがコントロールを実行させるようにします。

このスクリプトは、ページが読み込まれているときに正常に動作しますが、その後にボタンがクリックされたときには実行されません。

デバッグしようとしましたが、ボタンがクリックされたときにスクリプトがトリガーされないことを除いて(スクリプトマネージャが呼び出しています)、すべて問題はありません。

同じ関数をコピーして、名前を変更して 'RegisterClientScriptBlock'に変更しようとしましたが、どちらも機能しませんでした。

誰かが考えられる理由を知っていますか?ありがとう!

+0

ですから、ボタンのクリックでこの関数を呼び出していますか? – Sankar

+0

ASP.Net AJAX更新パネルを使用している場合に発生する可能性があります。その場合は、教えてください。回避策があります。 –

+0

はい、ページの読み込みとボタンのクリックの両方があります。ページの読み込みが行われるときのみ。私はそれを清算するように質問を編集する。ありがとう! – DennisL

答えて

0

更新パネルを使用している場合、スクリプトブロックの動作はレンダリングされません。 pageload

ScriptManager.GetCurrent(Page).RegisterPostBackControl(urButton); 
+0

ではありません。回避策が不明な場合は、Urコードを投稿してください!!! –

+0

私はページ全体をリフレッシュしようとしましたが、動作していません。とにかくありがとう。 – DennisL

0

のコード次プット回避策として、私は答えを見つけることが、私の代わりに、このページを使用する必要があります。

ScriptManager.RegisterStartupScript(page, GetType(), "changeProgressActiveStep", "alert("Hello")", true);