2010-12-06 28 views
0

Matin tous.Comment puis-je m'assurer que javascript est déclenché après la mise à jour d'un panneau de mise à jour?

Comment ça marche? Excellent j'espère.

je les petits morceaux de code suivant que j'utilise pour cocher/décocher deux boutons radio sur ma page:

<script type="text/javascript"> 

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

</script> 

Je puis attribuez-lui cela à quelques contrôles dans le code derrière et ajouter ceci à la charge de la page:

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

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

Maintenant, cela fonctionne très bien sur la charge initiale - belles choses. Lorsque je clique sur ddl1, le bouton radio est défini en conséquence. Cependant, lorsque le panneau de mise à jour affiche, le javascript ne fonctionne plus.

Je pense que c'est parce que le code HTML est renvoyé et le javascript n'est plus là.

Comment puis-je m'assurer que, malgré la publication d'un panneau de mise à jour, le javascript reste un peu plus longtemps et fonctionne comme il le devrait?

Toute aide ou suggestion reçue avec gratitude.

Répondre

0

Depuis que vous utilisez updatepanel je suppose que vous avez déjà une istance du ScriptManager sur votre page. Je vous suggère d'utiliser le ScriptManager pour enregistrer les scripts clients, cela assurera qu'ils s'appelés postbacks partielles:

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

Bonjour dejan - ScriptManager sont placés dans une page maître - que cela ferait une différence? –

+0

Non, cela ne devrait pas faire de différence. Si vous utilisez l'instance statique de la classe ScriptManager, elle doit trouver l'occurrence ScriptManager sur votre page maître, tant que le contrôle que vous avez placé dans le paramètre "control" dans la méthode ci-dessus fait partie de l'arbre de contrôle de la page en cours (les contrôles est déjà ajouté à la page, ne vous inquiétez pas à ce sujet si vous n'ajoutez pas de contrôles dinamycaly à l'arbre de contrôle) Donc, en bref, non. – dejanb