2010-12-06 15 views
0

午前中です。パネルの更新後にjavascriptが確実に起動するようにするにはどうすればよいですか?

元気?優秀な私は望む。

私は私のページ上のラジオボタンのカップルのチェックを外す/チェックするために使用しています次のコードはほとんどのビットがあります。

<script type="text/javascript"> 

function SetOption1RadioButton() { 
    document.getElementById('<%=radOption1.ClientID%>').checked = true; 
    document.getElementById('<%=radOption2.ClientID%>').checked = false; 

</script> 

私は、背後にあるコードでは、いくつかのコントロールにこれを割り当てて、追加をこれはページの読み込み:

protected void Page_Load(object sender, EventArgs e) 
     {    
      SetJavascriptAttributes();   
     } 

public void SetJavascriptAttributes() 
     { 
       ddl1.Attributes.Add("onFocus", "SetOption1RadioButton()"); 
       ddl1.Attributes.Add("onClick", "SetOption1RadioButton()"); 
     } 

これは最初の読み込み時に素敵です。 ddl1をクリックすると、それに応じてラジオボタンが設定されます。しかし、更新パネルがポストバックするとき、javascriptはもう機能しません。

これは、htmlが返され、javascriptがもう存在しないためです。

パネルのポストバックが更新されているにもかかわらず、javascriptがもう少し長く続き、実行する必要があることを確認するにはどうすればよいですか?

喜んでいただいた助けや提案。

答えて

0

あなたは既にあなたのページにScriptManagerの義務を負っていると思います。私は、これは彼らが部分ポストバックで呼び出さ保証します、あなたが任意のクライアントスクリプトを登録するScriptManagerを使用することをお勧め:

ScriptManager.RegisterStartupScript(); 
ScriptManager.RegisterExpandoAttribute(); 
+0

こんにちはデヤン - のScriptManagerがマスターページ内に配置されている - これは何の違いになるだろうか? –

+0

いいえ、違いはありません。 ScriptManagerクラスの静的インスタンスを使用する場合は、上記のメソッドsignureの 'control'パラメータに入れたコントロールが現在のPageのコントロールツリーの一部である限り、マスターページ上のScriptManagerインスタンスを見つける必要があります(コントロール既にページに追加されていますが、コントロールツリーにコントロールdinamycalyを追加しないと、これについて心配する必要はありません) – dejanb

関連する問題