2009-11-08 4 views
0

J'ai un problème avec le contrôle de la zone de texte du mot de passe. J'ai le nom d'utilisateur textbox, mot de passe textbox, retypepassword textbox. Et j'ai drowpdownlist avec des éléments Site Web, Journal, Autres. Après avoir rempli le nom d'utilisateur, mot de passe, retapez le mot de passe dans la zone de texte. Chaque fois que je sélectionne des éléments de journaux et autres articles de drowdownlist, mot de passe et retypepassword valeur de la zone de texte se efface. J'ai défini dans autopostback = true dans le contrôle dropdownlist. Pls quelqu'un m'aider où est mon erreur ??Besoin d'aide dans le champ de saisie du mot de passe asp.net

Merci, Sumit

Répondre

4

Ce n'est pas une erreur, il est juste que les mots de passe ne seront pas renvoyés au client après une publication, c'est par la conception. Quelle est votre intention? ... existe-t-il une raison pour laquelle vous souhaitez que les boîtes de mot de passe persistent à travers les publications?

+0

J'ai mis autopostback = true dans dropdownlist pas dans le contrôle de la zone de texte du mot de passe. Mon intention est quand je choisis n'importe quelle valeur du mot de passe de dropdownlist et la valeur de retypepassword ne devrait pas être effacée, elle devrait rester même avec des valeurs remplies jusqu'à ce que je clique sur le bouton de sauvegarde. SVP dites-moi comment puis-je y arriver ??? – Sumit

+1

Eh bien, vous pouvez utiliser l'approche recommandée par harpo mais méfiez-vous que cela exposera le mot de passe en clair dans le HTML rendu. Vous pouvez également attendre de demander la saisie d'un mot de passe jusqu'à ce que le reste du contenu nécessitant des publications soit terminé ou cesser de publier sur la liste déroulante si cela n'est pas nécessaire. –

+1

Je suis d'accord. Essayez d'adhérer à la philosophie de ce qu'est un champ de mot de passe. Il ne devrait pas être persisté, et c'est la conception typique de la plupart des sites. Vous êtes déjà inscrit à un compte qui nécessite la création d'un nom d'utilisateur et d'un mot de passe, et lors de l'envoi du formulaire, vous recevez un message indiquant que certaines informations sont manquantes. Devinez ce qui arrive à ce champ "mot de passe" que vous avez déjà rempli? Il est à nouveau vide. C'est la meilleure façon d'aborder cela en n'essayant pas de casser la conception. – atconway

7

Comme l'a indiqué Quintin, c'est intentionnellement. TextBox.Text ne persiste pas lorsque TextMode est "Mot de passe". Vous pouvez contourner ce problème en définissant

txtPassword.Attributes[ "value" ] = txtPassword.Text; 

pendant le traitement de la page.

1

Vous pouvez placer DropDownList sur un UpdatePanel. Ou utilisez JavaScript au lieu de la publication côté serveur.

+0

Lorsque je garde le DropDownList sur un UpdatePanel, l'autre zone de texte n'apparaît pas. Si je sélectionne Autres éléments de la liste déroulante Autres, la zone de texte doit apparaître. – Sumit

+0

Je ne peux pas réaliser ce que tu veux dire? Mais si vous voulez dire que les boîtes de texte ne s'affichent pas lorsque vous sélectionnez un élément de DropDownList, notez que vous devriez également les mettre dans UpdatePanel. –

0

Dans la méthode dropdown_SelectedIndexChanged(object sender, EventArgs e) définissez le champ de mot de passe et sur le terrain confirmPassword

txtPassword.Attributes.Add("value",txtPassword.Text); 
    txtconfirmPassword.Attributes.Add("value", txtconfirmPassword.Text); 

Et encore une fois sur le bouton soumettre clic, vous devez effacer le champ de mot de passe comme ci-dessous

txtPassword.Attributes["value"] = ""; 
    txtconfirmPassword.Attributes["value"] = ""; 
Questions connexes