在 OnCreatingUser 事件中编辑 CreateUserWizard 文本框

Posted

技术标签:

【中文标题】在 OnCreatingUser 事件中编辑 CreateUserWizard 文本框【英文标题】:Editing CreateUserWizard Textbox in OnCreatingUser Event 【发布时间】:2013-02-28 15:47:18 【问题描述】:

好的,我这里有这个场景。我有一个 Register.aspx 用于注册新用户。我正在使用 CreateUserWizard。我希望用户仅使用公司的电子邮件进行注册。因此,我在显示域的电子邮件文本框旁边放置了一个标签,这意味着用户无需再键入域。 我的 html 如下所示:

<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 仍然有没有域的电子邮件。而不是得到像“myemail@domain.com”这样的东西,我只得到“myemail”的存储。不确定我是否朝着正确的方向前进,只是将我自己的域添加到他们的电子邮件中。很可能不是。任何指针将不胜感激。

【问题讨论】:

【参考方案1】:

您需要设置CreateUserWizard控件的.Email property,而不是TextBox的值。这实际上是在后端传递给 MembershipProvider 的 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;

【讨论】:

救命!非常感谢!睡不着觉,因为这件事一直在我的脑海里运转。哈哈,为什么我没有考虑将其设置为 Email 属性。无论如何,谢谢! @Zenvo 很高兴我能帮上忙 =) 有时你只需要休息一下,或者换一双眼睛就能看到问题。

以上是关于在 OnCreatingUser 事件中编辑 CreateUserWizard 文本框的主要内容,如果未能解决你的问题,请参考以下文章

finereport 填报 单元格 JS 触发 提交SQL 事件

这样的才叫全能!本田CR-V单车性能测试

仅为 TS/TSX 文件删除 CR - VSCode 1.46 上的 Prettier ESLint

在 UISplitViewController 中编辑事件

CALDAV 在 ICLOUD 中编辑/删除多个事件

会计学包含的两种程序设计思想