.NET createuserwizard - как предоставить предварительно заполненное (и отключенное) поле электронной почты - PullRequest
0 голосов
/ 02 июня 2010

Я создаю веб-сайт .NET, и я впервые использую элемент управления createuserwizard.

Мне нужно предварительно заполнить адрес электронной почты для пользователей (сайт только по приглашению) и отключить его. Однако поле электронной почты все еще необходимо заполнить.

Мне удалось отредактировать шаблон, отключить поле электронной почты и заполнить его программно в файле .aspx.cs. Однако, когда я отключаю поле электронной почты и предварительно заполняю его, форма createuserwizard не будет отправлена. Он обрабатывает поле электронной почты так, как если бы оно было пустым, и всегда возвращает меня на страницу создания пользователя с красной звездочкой рядом с полем электронной почты. Это происходит, даже если для свойства RequireEmail установлено значение False.

Есть ли способ заставить пользователей зарегистрироваться по указанному адресу электронной почты? Я надеялся, что мастер создания пользователей сделает мою жизнь проще, но пока это не так. Спасибо.

Ответы [ 3 ]

1 голос
/ 02 июня 2010

Я сделал что-то вроде этого - в моем случае я не хотел отдельное имя пользователя, я использовал их адрес электронной почты в качестве имени пользователя (и не позволил им изменить его), поэтому я сделал:

  • в разметке установите Email для ReadOnly = "true" и UserName для Visible = "false"
  • в Page_Load, внутри if (! Postback), установите для текстового поля Электронная почта значение Текст в адрес электронной почты и установите для ReadOnly значение true
  • в событии CreateUser установите UserName.Text = Email.Text

Это все, что мне нужно - если вам не нужно вводить имя пользователя, я бы порекомендовал подключиться к событию CreateUser и проверить свойство Text электронной почты, чтобы убедиться, что оно установлено правильно. Возможно, что-то еще очищает его после того, как вы его установили.

FWIW, в своем коде я добавил несколько свойств, чтобы облегчить доступ к этим текстовым полям, хотя, вероятно, есть лучшие способы сделать это:)

    private TextBox UserName {
        get { return GetWizardControl<TextBox>("UserName"); }
    }

    private TextBox Email {
        get { return GetWizardControl<TextBox>("Email"); }
    }

    private T GetWizardControl<T>(string id) where T : Control {
        return (T)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl(id);
    }
0 голосов
/ 26 июля 2010

READONLY и DISABLED оба удаляют функциональность поля ввода, но в разной степени. READONLY блокирует поле: пользователь не может изменить значение. DISABLED делает то же самое, но продвигает его дальше: пользователь не может использовать поле никоим образом, не выделять текст для копирования, не устанавливать флажок, не отправлять форму. На самом деле, отключенное поле даже не отправляется, если форма отправлена.

взято отсюда: http://www.htmlcodetutorial.com/forms/_INPUT_DISABLED.html

0 голосов
/ 03 июня 2010

Альтернативным решением было установить свойство Disabled в обязательном поле валидатора для электронной почты - я сделал это вручную, отредактировав код aspx. Я не полностью протестировал эту альтернативу, так как ответ, предоставленный Джеймсом Мэннингом, сработал для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...