Déclenchement de fonctions ASP.NET à partir d'événements de clic JavaScript
Les applications Web ASP.NET nécessitent souvent une communication entre les méthodes JavaScript côté client et les méthodes ASP.NET côté serveur. Une tâche courante consiste à exécuter une fonction ASP.NET en réponse à un événement de clic JavaScript.
Réaliser une exécution côté serveur à partir de clics côté client
Cette interaction est réalisable en utilisant une méthode qui contourne intelligemment les approches AJAX standard.
Étapes de mise en œuvre
Implémenter IPostBackEventHandler
: Incorporez l'interface IPostBackEventHandler
dans votre classe de page ASP.NET :
<code class="language-csharp">public partial class Default : System.Web.UI.Page, IPostBackEventHandler { }</code>
Remplacer RaisePostBackEvent
: Remplacer la méthode RaisePostBackEvent
:
<code class="language-csharp">public void RaisePostBackEvent(string eventArgument) { }</code>
Gestionnaire d'événements de clic JavaScript : Dans votre gestionnaire d'événements de clic JavaScript, utilisez la fonction __doPostBack
, en transmettant l'ID client de votre page et un argument d'événement :
<code class="language-javascript">var pageId = '<%= Page.ClientID %>'; __doPostBack(pageId, 'myArgument'); // 'myArgument' is a custom argument</code>
Gestion des publications ASP.NET : Dans l'événement Page_Load
de votre page ASP.NET, gérez la publication et exécutez la méthode appropriée :
<code class="language-csharp">protected void Page_Load(object sender, EventArgs e) { if (Page.IsPostBack) { string eventArgument = Request.Form["__EVENTARGUMENT"]; switch (eventArgument) { case "myArgument": MyAspDotNetMethod(); // Call your server-side method break; } } }</code>
Explication : La fonction __doPostBack
déclenche une publication ASP.NET standard, détectable dans l'événement Page_Load
. Le eventArgument
vous permet de faire la distinction entre les différentes publications et d'appeler la méthode côté serveur appropriée. Cette approche évite les complexités liées à la configuration des paramètres AJAX.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!