Asp: RadioButtonList poste-t-il toujours sur le serveur même lorsque la validation du client échoue?

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

Question

Cette requête est liée à celle que j'ai demandée. hier. J'ai une liste de boutons radio sur ma page asp.net définie comme suit:

<asp:RadioButtonList ID="rdlSortBy" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" AutoPostBack="True" >
       <asp:ListItem Selected="True">Name</asp:ListItem>
        <asp:ListItem>Staff No</asp:ListItem>
</asp:RadioButtonList>

Du côté client, je fais les validations suivantes:

rdlSortBy.Attributes("onclick") = "javascript:return prepareSave() && prepareSearch();"

Le problème est que la validation Javascript s'exécute comme prévu. Un message s'affiche et je compte rester sur la page jusqu'à ce que l'utilisateur ait enregistré les modifications. La page est à nouveau affichée et, effectivement, je perds les modifications non enregistrées.

Qu'est-ce qui pourrait mal se passer?

Était-ce utile?

La solution

J'ai résolu ce problème, le problème était que je fixais le "onclick". de RadioButtonList à la place sur les boutons radio individuels.

Voici le correctif:

rdlSortBy.Items(0).Attributes("onclick") = "javascript:return isDirtied() && prepareSearch();"
    rdlSortBy.Items(1).Attributes("onclick") = "javascript:return isDirtied() && prepareSearch();"

Autres conseils

Le code OnClick que vous utilisez pour "valider". est exécuté, puis le code qui renvoie le formulaire que le contrôle injecte lui-même est exécuté.

Vous devez intercepter ce processus PostBack et l'arrêter avant qu'il ne poste le formulaire côté client. La meilleure façon de procéder consiste à utiliser un CustomValidator et plus particulièrement le paramètre "ClientValidationFunction". propriété. Cela permettra à votre code JavaScript de signaler que la publication ne devrait pas avoir lieu en raison d’une erreur de validation.

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