2013-02-28 2 views
1

Хорошо, у меня есть этот сценарий здесь. У меня есть Register.aspx для регистрации новых пользователей. Я использую CreateUserWizard. Я хочу, чтобы пользователи использовали только электронную почту компании для регистрации. Поэтому я поместил метку рядом с текстовым полем электронной почты, показывающим домен, а это означает, что пользователю больше не нужно вводить домен. Мой HTML выглядит следующим образом:Редактирование CreateUserWizard Текстовое поле в OnCreatingUser Событие

<asp:TextBox ID="Email" runat="server" CssClass="textEntry1"></asp:TextBox> 
<asp:Label ID="lblEmail" runat="server" Text="@domain.com"></asp:Label> 

Так что я сделал, чтобы добавить метку к TextBox.Text следующим образом:

protected void RegisterUser_CreatingUser(object sender, EventArgs e) 
{ 
    TextBox _txtEmailAddress = (TextBox)RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("Email"); 
    Label _lblEmailAddress = (Label)RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("lblEmail"); 
    _txtEmailAddress.Text = _txtEmailAddress.Text + _lblEmailAddress.Text; 
} 

Я использую событие OnCreatingUser, чтобы сделать это.

_txtEmailAddress.Text будет иметь полное значение электронного письма, набранного пользователями и частью домена, которые я уже исправил. Я надеялся обновить его в поле «Электронная почта», чтобы он был правильно сохранен в базе данных.

Но поскольку я отлаживал код, я понял, что RegisterUser.Email по-прежнему имеет электронную почту без домена. Вместо того, чтобы получать что-то вроде «[email protected]», я получаю только «myemail». Не уверен, что я пойду в правильном направлении, чтобы добавить свой собственный домен в свои электронные письма. Скорее всего нет. Любой указатель был бы очень оценен.

ответ

2

Вам необходимо установить .Email property управления CreateUserWizard, а не значение TextBox. Это то, что фактически передается на бэкэнде на метод Member12Pressider CreateUser.

Как это:

protected void RegisterUser_CreatingUser(object sender, EventArgs e) 
{ 
    TextBox _txtEmailAddress = (TextBox)RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("Email"); 
    Label _lblEmailAddress = (Label)RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("lblEmail"); 

    // Set the email property of the CreateUserWizard control to append the domain 
    RegisterUser.Email = _txtEmailAddress.Text + _lblEmailAddress.Text; 
} 
+0

Life заставка! Большое спасибо! Не мог хорошо спать, потому что эта штука у меня в голове. Ха-ха, почему я не подумал об установке этого свойства Email. В любом случае, мерси! – Zenvo

+0

@ Zenvo Glad Я мог бы помочь =) Иногда вам просто нужен перерыв или другой набор глаз, чтобы увидеть проблему. – jadarnel27

Смежные вопросы