2010-04-29 5 views
1

J'ai une page où un javascript sera déclenché lorsque l'utilisateur ferme les onglets du navigateur/fenêtre du navigateur. La langue est dans C# merci.Appelez un code derrière la fonction de javascript dans aspx

im en utilisant window.onbeforeunload, quelque chose le long de la ligne comme ceci:

<script type="text/javascript"> 


    window.onbeforeunload = myFunction; 


function myFunction() 
{ 
    //call my function here 
} 

le code derrière la fonction sera une fonction simple pour l'instant, donc aucun paramètre d'entrée ou de la valeur de retour sont nécessaires. Donc, je voudrais juste savoir comment appeler ma fonction (par exemple: public void callMyFunction())

+2

Je pense que vous êtes confus ici ... le code javascript s'exécute dans le navigateur (client) et le code C# s'exécute sur le serveur. Vous ne pouvez pas appeler le code C# depuis javascript. Au mieux, vous pouvez appeler un service Web exposé sur le serveur via un appel AJAX. –

+1

Ou utilisez les méthodes de page. Bon tutoriel: http://www.singingeels.com/Articles/Using_Page_Methods_in_ASPNET_AJAX.aspx – Joop

+0

@ axel_c ~ Qu'est-ce qui vous fait penser que vous ne pouvez pas appeler le code C# de javascript? Je l'ai fait de nombreuses fois .. Appelez simplement button.click() depuis votre javascript et soyez surpris! – Pabuc

Répondre

0

Essayez l'exemple de code ci-dessous:

<html> 
<head> 
    <script src="scripts/jquery-1.4.4.min.js" type="text/javascript"></script> 

    <script type="text/javascript" language="javascript"> 
     windown.OnUnload(){ function(){ $("#Btn_Click").click();}}; 
    </script> 

</head> 
<body> 
... 

<asp:Button ID="Btn_Click" runat="server" Text="ButtonClick" onClick="Btn_Click" /> 
... 
</body> 
</html> 

espère que ça aide !!!

0

En utilisant Ajax vous pouvez accéder au code derrière la méthode depuis javascript. Essayez ce code.

<script type="text/javascript"> 
    classname.methodname(); 
    </script> 

Dans le code behind: en charge de page, vous devez enregistrer le code follwing ...

pageload() 
{ 
     AjaxPro.Utility.RegisterTypeForAjax(typeof(pagename), this.Page); 
} 



[AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)] 
    public void methodname() 
    { 
    .......... 
    ........ 
    } 

Ici classname est le code behind nom de classe

Questions connexes