2009-11-18 5 views
2

J'ai un bouton qui ferme une boîte de dialogue modale sur un formulaire ASP.NET Ajax. Comment ajouter une fonction côté client à appeler sur le même bouton cliquer?Comment ... Ajouter la fonction côté client au bouton qui est postback?

actuellement Firebug a cela pour le onclick

javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$DefaultContent$btnPaymentActionDetailClose", "", true, "", "", false, false)) 

puis-je ajouter juste un gestionnaire de clic avec jQuery? Je ne veux pas effacer la publication car elle est nécessaire pour la fonctionnalité des formulaires.

Puis-je utiliser

$("#buttonId").bind("click", function(e){ 
    runAnotherFunction(); 
}); 

et ne pas interférer avec le postback existant?

En fait, il faut dire la vérité, je veux executer la fonction quand la boîte de dialogue modale se ferme. Est-ce que les widgets de la boîte à outils de contrôle ajax déclenchent tout type d'événement? Je sais que je peux trouver le comportement et appeler montrer et cacher. Puis-je attacher ma fonction à exec quand modal.hide() est exécuté?

Merci pour tout conseil, ~ ck à San Diego

Répondre

3

Oui, vous pouvez certainement avoir votre ASP:Button exécuter JavaScript sur le client avant de poster en arrière. C'est la propriété OnClientClick du webcontrol.

Vous n'aurez pas besoin de jQuery pour cela.

<asp:button id="btn" runat="server" onClientClick="SomeJsFunction()" 
    onClick="ServerSideMethod()" Text="Hello Button" /> 

<script language='javascript'> 
    function SomeJsFunction() 
     { 
     alert('hi'); 
     } 
</script> 

Si vous êtes intéressé contrôler si le postback se produit ou non, vous pouvez retourner et vérifier vrai/faux à partir du résultat de votre fonction Javascript.

function SomeJsFunction() 
{ 
    var isGood = false; 
    return isGood; 
} 

<asp:button id="btn" runat="server" onClientClick="return SomeJsFunction()" 
    onClick="ServerSideMethod()" Text="Hello Button" /> 

(grâce à Ralph pour le coup de coude dans les commentaires)

+1

+1 Je rajouterais que vous pouvez avoir revenir vrai ou faux, comme dans « OnClientClick = « return SomeJsFunction() » 'si vous avez besoin de valider certaines entrées et/ou d'annuler conditionnellement la publication. La fonction JS doit alors retourner un booléen. –

Questions connexes