J'écris une page Web dans ASP.NET. J'ai du Javascript et j'ai un bouton de soumission avec un événement onClick.
Est-il possible d'appeler une méthode créée en ASP avec l'événement onClick de Javascript?
J'écris une page Web dans ASP.NET. J'ai du Javascript et j'ai un bouton de soumission avec un événement onClick.
Est-il possible d'appeler une méthode créée en ASP avec l'événement onClick de Javascript?
Eh bien, si vous ne voulez pas le faire à l'aide d'AJAX ou de toute autre manière et veulent juste un normal ASP.NET publication d'arriver, voici comment faire (sans recourir à d'autres bibliothèques):
C'est un peu difficile... :)
j'. Dans votre fichier de code (en supposant que vous êtes à l'aide de C# et de .NET 2.0 ou version ultérieure) ajouter l'Interface suivante pour votre Classe de la Page pour la faire ressembler à
public partial class Default : System.Web.UI.Page, IPostBackEventHandler{}
ii. Cela devrait ajouter (à l'aide de l'Onglet de l'Onglet) cette fonction à votre fichier de code:
public void RaisePostBackEvent(string eventArgument) { }
iii. Dans votre événement onclick Javascript écrire le code suivant:
var pageId = '<%= Page.ClientID %>';
__doPostBack(pageId, argumentString);
Cela permettra d'appeler la "RaisePostBackEvent' méthode dans votre fichier de code avec le "eventArgument' comme 'argumentString' vous avez passé du Javascript. Maintenant, vous pouvez appeler n'importe quel autre évènement que vous désirez.
P. S: C'est "trait de soulignement (underscore-doPostBack' ... Et, il devrait y avoir aucun espace dans cette séquence... en Quelque sorte, l'ADM ne me permet pas d'écrire à souligne suivie par un caractère!
La méthode __doPostBack()
fonctionne bien.
Une autre solution (très piratée) consiste simplement à ajouter un bouton ASP invisible dans votre balisage et à cliquer dessus avec une méthode javascript.
<div style="display: none;">
<asp:Button runat="server" ... OnClick="ButtonClickHandlerMethod" />
</div>
À partir de votre javascript, récupérez la référence au bouton à l'aide de son identifiant client puis appelez la méthode .click () .
var button = document.getElementById(/* button client id */);
button.click();
Le Microsoft AJAX library permet d'accomplir cela. Vous pouvez également créer votre propre solution qui consiste à utiliser AJAX pour appeler votre propre aspx (essentiellement) des fichiers de script à exécuter .NET fonctions.
Je vous suggère de Microsoft AJAX library. Une fois installé et référencé, il suffit d'ajouter une ligne dans votre page de chargement ou init:
Ajax.Utility.RegisterTypeForAjax(GetType(YOURPAGECLASSNAME))
Ensuite, vous pouvez faire des choses comme:
<Ajax.AjaxMethod()> _
Public Function Get5() AS Integer
Return 5
End Function
Ensuite, vous pouvez l'appeler sur votre page:
PageClassName.Get5(javascriptCallbackFunction);
Le dernier paramètre de votre appel de fonction doit être le javascript de la fonction de callback qui sera exécutée lorsque la requête AJAX est retourné.
Microsoft AJAX library permet d'accomplir cela. Vous pouvez également créer votre propre solution qui consiste à utiliser AJAX pour appeler votre propre aspx (essentiellement) des fichiers de script à exécuter .NET fonctions.
C'est la bibliothèque appelée AjaxPro qui a été écrit MVP nommé Michael Schwarz. C'était de bibliothèque n'a pas été écrit par Microsoft.
J'ai utilisé AjaxPro largement et c'est une très belle bibliothèque, que je recommande pour de simples rappels sur le serveur. Il n'fonction avec MS version de l'Ajax sans problèmes. Cependant, je tiens à souligner avec quelle facilité MS a fait de l'Ajax j'aimerais n'utiliser que si vraiment nécessaire. Il prend beaucoup de JavaScript pour faire quelques vraiment compliqué fonctionnalités que vous obtenez à partir de MS par simplement laisser tomber dans un panneau de mise à jour.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.