2009-11-08 1 views
0

У меня проблема с управлением текстовым полем с паролем. У меня есть текстовое поле пользователя, текстовое поле пароля, текстовое поле retypepassword. И у меня есть drowpdownlist с элементами сайта, газеты, другие. После заполнения имени пользователя, пароля повторно введите пароль в текстовое поле. Всякий раз, когда я выбираю пункты «Газета» и «Другие» из значения drowdownlist, password и retypepassword, очищается. Я установил autopostback = true в dropdownlist control. Pls кто-нибудь мне помог где моя ошибка ??Нужна помощь в текстовом поле пароля asp.net

Спасибо, Sumit

ответ

4

Это не ошибка, это просто, что пароли не будут отправлены обратно клиенту после обратной передачи, это дизайн. Каковы ваши намерения? .. есть ли причина, по которой вы хотели бы, чтобы окна с паролями сохранялись через обратную связь?

+0

Я поставил AutoPostBack = true в раскрывающемся списке не в текстовом поле пароля. Мое намерение - когда я выбираю любое значение из пароля dropdownlist, а значение retypepassword не должно быть очищено, оно должно оставаться таким же, как и с заполненными значениями, до тех пор, пока я не нажму кнопку «Сохранить». Pls подскажите мне, как мне это достичь ??? – Sumit

+1

Хорошо, что вы могли бы использовать подход, рекомендованный harpo, но остерегайтесь того, что это откроет пароль обратно в текстовом виде в визуализированном HTML. В качестве альтернативы вы можете подождать, чтобы запросить ввод пароля до тех пор, пока остальная часть содержимого, требующая обратной передачи, не будет завершена или не будет отправлена ​​обратно в раскрывающийся список, если это не требуется. –

+1

Согласен. Постарайтесь придерживаться философии того, что такое поле пароля. Это не должно сохраняться, и это типичный дизайн большинства сайтов. Когда-либо регистрировались для учетной записи, которая требует создания имени пользователя и пароля, а при отправке формы вы получаете сообщение о том, что некоторая информация отсутствует. Угадайте, что происходит с этим полем «пароль», которое вы уже заполнили? Он снова пуст. Это лучший способ приблизиться к этому, не пытаясь сломать дизайн. – atconway

7

Как указал Квинтин, это по дизайну. TextBox.Text не сохраняется, когда TextMode является «Пароль». Вы можете обойти это, установив

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

некоторое время во время обработки страницы.

1

Вы можете поместить DropDownList на UpdatePanel. Или используйте JavaScript вместо обратной передачи на стороне сервера.

+0

Когда я сохраняю DropDownList на UpdatePanel, другое текстовое поле не появляется. Если я выбираю Другие элементы из раскрывающегося списка, то должно появиться текстовое поле. – Sumit

+0

Я не понимаю, что вы имеете в виду? Но если вы имеете в виду, что текстовые поля не отображаются при выборе элемента из DropDownList, обратите внимание, что вы также должны поместить их в UpdatePanel. –

0

В методе dropdown_SelectedIndexChanged(object sender, EventArgs e) установите в поле пароля и confirmpassword поле

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

И снова кнопку отправки мыши вы должны очистить поле пароля, как ниже

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