Comment intercepter une publication dans une page? – ASP.NET

Je souhaite intercepter les publications dans la page en cours AVANT que cela se produise. Je souhaite effectuer des manipulations personnalisées avant la publication d’une publication. Des idées comment faire cela?

Vous pouvez faire plusieurs choses pour intercepter une publication sur le client.

La fonction __doPostBack ressemble à ceci:

function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } 

Notez qu’il appelle “theForm.onsubmit ()” avant de faire la publication. Cela signifie que si vous assignez une fonction javascript à votre formulaire, il sera toujours appelé avant chaque publication.

 

Vous pouvez également remplacer la fonction __doPostBack par la vôtre. C’est un vieux truc utilisé dans ASP.Net 1.0 jours.

 var __original= __doPostBack; __doPostBack = myFunction(); 

Ceci remplace la fonction __doPostBack par la vôtre et vous pouvez appeler l’original à partir de votre nouveau.

Utilisez les options suivantes

Toutes les options fonctionnent avec des formulaires adaptés à ajax et des formulaires simples.
renvoie false pour annuler la soumission dans n’importe quel gestionnaire de soumission.

 Page.ClientScript.RegisterOnSubmitStatement(Page.GetType(), "submit-handler", "alert(\"On PostBack\");"); 

Équivalent javascript –ne pas utiliser ce code avec le code précédent simultanément

 // Modify your form tag like this 
// Add this script tag within head tag

Et si vous voulez un contrôle complet sur __doPostBack, placez ce script à côté de votre balise de formulaire.

  

Testé avec ASP.NET 4.0

Pour obtenir la publication avant une page, vous pouvez créer un HttpHandler et implémenter la fonction ProcessRequest .

Vérifiez ce lien Scott Hanselman pour un bon article de blog sur la façon de le faire (y compris un exemple de code).

Page.IsPostBack est votre ami.

Vous pouvez rechercher une publication dans l’une des pages d’événements de votre formulaire.

Si vous souhaitez effectuer des actions sur la publication qui impliquent la création de contrôles ou la manipulation de viewstate, vous souhaiterez peut-être participer à un événement antérieur, comme Page_Init.

Essaye ça:

 protected void Page_Init(object sender, EventArgs e) { if (Page.IsPostBack) { //Check for your conditions here, if (Page.IsAsync) { //also you may want to handle Async callbacks too: } } } 

pas sûr, mais je pense que vous cherchez ..

 if (Page.IsPostBack) { }