1

Nous développons en utilisant Sharepoint, nous devons donc nous en tenir à ASP.NET 3.5. Dans le cas où notre page a un champ avec autopostback et un bouton, nous rencontrons des conditions de concurrence dès que l'utilisateur était sur le champ de retour automatique et clique sur le bouton. Dans ce cas, le clic sur le bouton revient parfois plus tôt que celui de l'autopostback et est donc remplacé.Comment éliminer les conditions de course pour les éléments avec autopostback = true dans ASP.NET?

Quelqu'un at-il déjà rencontré ce problème?

Quelle est la bonne solution pour cela?

ADDON: Le cas dont je parle est sur les points suivants:

<form> 
<ScriptManager /> 
<UpdatePanel> 
<TextBox AutoPostBack="True" /> 
<Button /> 
</UpdatePanel> 
</form> 
+0

Qu'est-ce qui nécessite une publication automatique avant la soumission du formulaire? Est-ce comme une validation "nom d'utilisateur existe déjà"? Quelles pauses que vous ne pouvez pas résoudre dans l'événement de bouton. – Phill

+0

S'il vous plaît, voir mes commentaires à la première réponse. Nous construisons un framework générique, donc il peut y avoir n'importe quel nombre de champs avec AutoPostback sur la page. La solution doit être générique dans notre cas. – Artem

+0

@Artem - Il suffit de lire le commun, je ne comprends pas ce que font les champs qui ont auto-postback, il est donc difficile de répondre à votre question. Il semble que vous utilisiez l'autopostback pour de mauvaises raisons si chaque champ dépend du précédent, ou si l'envoi du formulaire dépend du résultat des publications ... – Phill

Répondre

0

La solution la plus fondamentale que je peux penser est de désactiver le bouton en utilisant javascript en manipulant l'événement client qui est à l'origine du autopostback .

+0

Ensuite, nous devrons désactiver l'ensemble de la page, car la page pourrait avoir d'autres champs d'autopostback qui conduiront aux mêmes conditions. Par conséquent nous éliminerons tous les avantages d'AJAX. :(Peut être vous pouvez conseiller des solutions pas si simples? – Artem

0

Vous pouvez désactiver le bouton en attendant la publication. Mais c'est un hack et vous ne voulez probablement pas faire ça. Généralement, je m'attendrais à ce que les contrôles fassent leur validation et bloquent la soumission s'il y a un problème. Imaginons que vous disposiez d'un autopostback dans une liste déroulante où, dans certains cas, il permet de faire basculer une zone de texte pour certaines informations de sous-catégorie. Soit l'autopostback se produit et met à jour la zone de texte en premier, ou l'envoi sera soumis avec la nouvelle valeur de la liste déroulante et la validation côté serveur déterminera si vous avez besoin d'avoir une valeur dans cette sous-zone de texte. Si vous le faisiez, il reviendrait avec activé et éventuellement du texte rouge disant que c'est nécessaire.

Questions connexes