Le serveur Asp.net contrôle le même ordre de traitement des événements côté serveur / côté client

StackOverflow https://stackoverflow.com/questions/204305

  •  03-07-2019
  •  | 
  •  

Question

J'ai un contrôle serveur asp.net (avec l'asp: dans sa définition). Le bouton a été configuré pour effectuer un post-retour.

Du côté serveur, j'ai le gestionnaire d'événement on click par exemple, btnSave_click ()

Du côté client, j'ai une fonction javascript à invoquer lors de l'événement click Par exemple, btnSave.Attributes.Add ("onclick", "javascript: return CheckIsDirty ();")

Je ne suis pas sûr de l'ordre dans lequel ces deux vont être exécutés. Parce que je veux d’abord que le côté client mette en garde sur les champs de saisie de données qui ne sont pas encore remplis avant d’enregistrer les données.

Avez-vous de l'aide?

Était-ce utile?

La solution

Premier côté client, deuxième côté serveur.

Vous pouvez donc l'utiliser.

Je l'utilise aussi dans certains cas, comme:

close.Attributes["OnClick"] = "return confirm('Are you sure?')";

Dans ce cas, si l'utilisateur appuie sur "Non", le gestionnaire d'événements côté serveur ne joue même pas un rôle.

Autres conseils

Le truc ici consiste à définir cette variable globale " Page_IsValid " false si votre test échoue et que le post s'arrête.

Lisez cette page http://msdn.microsoft.com/en- nous / bibliothèque / aa479045.aspx qui explique la validation côté serveur et la validation client. Vous pouvez utiliser un bon exemple de code.

La façon dont vous définissez votre événement JavaScript onClick l'empêchera en réalité de poster en arrière lorsque vous écraserez le gestionnaire d'événements ASP.NET. Pour effectuer la validation souhaitée, procédez comme suit:

btnSave.Attributes.Add("onclick", "CheckIsDirty();" + GetPostBackEventReference(btnSave).ToString());

Notez que vous ajoutez le résultat de GetPostBackEventReference afin que vous appeliez d'abord votre méthode CheckIsDirty (), puis la méthode de publication ASP.NET. En supposant que votre méthode retourne true, le bouton publiera. S'il renvoie false, il ne générera pas de message.

Cela ressemble-t-il à ce que vous essayez d'accomplir?

Je pense que vous avez besoin d'une bien meilleure compréhension de ce que cela signifie du côté client et ce que cela signifie du côté serveur et de la façon dont ils sont tous liés. J'ai vu de plus en plus de développeurs en désordre.

Bien sûr, le côté client s’exécutera en premier dans votre cas. En fait, il n'y a aucun moyen de l'exécuter après l'exécution du code serveur (sauf si vous faites quelque chose manuellement). Je vais essayer de donner une brève explication:

Tout ce que vous avez sur votre serveur générera du code HTML sur le client et l'utilisateur interagira toujours sur le client. Vous avez donc un bouton HTML sur lequel l'utilisateur clique. Ce que le navigateur va faire est d’exécuter le javascript qui lui est associé ou si aucun javascript n’est spécifié et si le bouton est un bouton de soumission, il soumet le formulaire. Si vous vérifiez le code HTML généré, vous verrez que, pour l'événement onclick, le script que vous avez ajouté est suivi d'un script généré automatiquement qui soumet effectivement le formulaire au serveur. Le code côté serveur ne s’exécutera que si la page est soumise.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top