1

我在注册用户步骤中添加了一些正则表达式,它们正在工作,因为*正在显示“”,但向导仍然会让我创建一个带有正则表达式错误的帐户。

  1. 我试图重做向导
  2. 更改一些功能但没有

.

页面来源

<asp:CreateUserWizard ID="RegisterUser" runat="server" CssClass="gridviewUsers" 
        oncreateduser="RegisterUser_CreatedUser1">
        <WizardSteps>
            <asp:CreateUserWizardStep runat="server">
                <ContentTemplate>
                    <table>
                        <tr>
                            <td align="center" colspan="2">
                                Sign Up for Your New Account</td>
                        </tr>
                        <tr>
                            <td align="right">
                                <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">User Name:</asp:Label>
                            </td>
                            <td>
                                <asp:TextBox ID="UserName" runat="server" 
                                    ToolTip="The Username that you will need to login later  eg &quot;john123&quot;"></asp:TextBox>
                                <asp:RequiredFieldValidator ID="rv1_1" runat="server" 
                                    ControlToValidate="UserName" ErrorMessage="User Name is required." 
                                    ForeColor="Red" ToolTip="User Name is required." 
                                    ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
                                <asp:RegularExpressionValidator ID="rv1_2" runat="server" 
                                    ControlToValidate="UserName" ErrorMessage="Not a valid Username" 
                                    ForeColor="Red" ValidationExpression="^[a-z0-9_-]{3,15}$" 
                                    ValidationGroup="CreateUserWizard1">*</asp:RegularExpressionValidator>
                            </td>
                        </tr>
                        <tr>
                            <td align="right">
                                <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label>
                            </td>
                            <td>
                                <asp:TextBox ID="Password" runat="server" TextMode="Password" 
                                    ToolTip="The password for the selected username eg&quot;123456&quot;"></asp:TextBox>
                                <asp:RequiredFieldValidator ID="rv2_1" runat="server" 
                                    ControlToValidate="Password" ErrorMessage="Password is required." 
                                    ForeColor="Red" ToolTip="Password is required." 
                                    ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
                                <asp:RegularExpressionValidator ID="rv2_2" runat="server" 
                                    ControlToValidate="Password" 
                                    ErrorMessage="Invalid Password Please enter a valid password rg&quot;pass12&quot;" 
                                    ForeColor="Red" ValidationExpression="^[A-Za-z0-9]+$" 
                                    ValidationGroup="CreateUserWizard1">*</asp:RegularExpressionValidator>
                            </td>
                        </tr>
                        <tr>
                            <td align="right">
                                <asp:Label ID="ConfirmPasswordLabel" runat="server" 
                                    AssociatedControlID="ConfirmPassword">Confirm Password:</asp:Label>
                            </td>
                            <td>
                                <asp:TextBox ID="ConfirmPassword" runat="server" TextMode="Password" 
                                    ToolTip="Must enter the same password as above  to confirm password"></asp:TextBox>
                                <asp:RequiredFieldValidator ID="rv3_1" runat="server" 
                                    ControlToValidate="ConfirmPassword" 
                                    ErrorMessage="Confirm Password is required." ForeColor="Red" 
                                    ToolTip="Confirm Password is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
                                <asp:RegularExpressionValidator ID="rv3_2" runat="server" 
                                    ControlToValidate="ConfirmPassword" 
                                    ErrorMessage="Invalid Password Please enter a valid password rg&quot;pass12&quot;" 
                                    ForeColor="Red" ValidationExpression="^[A-Za-z0-9]+$" 
                                    ValidationGroup="CreateUserWizard1">*</asp:RegularExpressionValidator>
                            </td>
                        </tr>
                        <tr>
                            <td align="right">
                                <asp:Label ID="EmailLabel" runat="server" AssociatedControlID="Email">E-mail:</asp:Label>
                            </td>
                            <td>
                                <asp:TextBox ID="Email" runat="server" 
                                    ToolTip="The email on which we will use to contact you!"></asp:TextBox>
                                <asp:RequiredFieldValidator ID="rv4_1" runat="server" ControlToValidate="Email" 
                                    ErrorMessage="E-mail is required." ForeColor="Red" 
                                    ToolTip="E-mail is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
                                <asp:RegularExpressionValidator ID="rv4_2" runat="server" 
                                    ControlToValidate="Email" ErrorMessage="Email invalid format" ForeColor="Red" 
                                    ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" 
                                    ValidationGroup="CreateUserWizard1">*</asp:RegularExpressionValidator>
                            </td>
                        </tr>
                        <tr>
                            <td align="right">
                                &nbsp;</td>
                            <td>
                                &nbsp;</td>
                        </tr>
                        <tr>
                            <td align="right">
                                &nbsp;</td>
                            <td>
                                &nbsp;</td>
                        </tr>
                        <tr>
                            <td align="center" colspan="2">
                                <asp:CompareValidator ID="PasswordCompare" runat="server" 
                                    ControlToCompare="Password" ControlToValidate="ConfirmPassword" 
                                    Display="Dynamic" 
                                    ErrorMessage="The Password and Confirmation Password must match." 
                                    ForeColor="Red" ValidationGroup="CreateUserWizard1"></asp:CompareValidator>
                            </td>
                        </tr>
                        <tr>
                            <td align="center" colspan="2" style="color:Red;">
                                <asp:Literal ID="ErrorMessage" runat="server" EnableViewState="False"></asp:Literal>
                                <asp:ValidationSummary ID="ValidationSummary1" runat="server" />
                            </td>
                        </tr>
                    </table>
                </ContentTemplate>
            </asp:CreateUserWizardStep>
            <asp:CompleteWizardStep runat="server" />
        </WizardSteps>
    </asp:CreateUserWizard>

.aspx 文件

 protected void RegisterUser_CreatedUser(object sender, EventArgs e)
        {
            if (CheckUsername() != true)
            {
                Roles.AddUserToRole(RegisterUser.UserName, "Pre-Member");
                FormsAuthentication.SetAuthCookie(RegisterUser.UserName, false /* createPersistentCookie */);


                string continueUrl = RegisterUser.ContinueDestinationPageUrl;

                if (String.IsNullOrEmpty(continueUrl))
                {
                    continueUrl = "~/Account/InsertingUserDetails.aspx";
                }
                Response.Redirect(continueUrl);
            }
            else
            {
                RegisterUser.UserNameRequiredErrorMessage = "User already taken";
            }
        }
4

2 回答 2

1

假设您的 Create Use 向导如下所示

<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" OnCreatedUser="CreateUserWizard1_CreatedUser"
    DisableCreatedUser="true" EmailRegularExpression="^((?:(?:(?:\w[\.\-\+]?)*)\w)+)\@((?:(?:(?:\w[\.\-\+]?){0,62})\w)+)\.(\w{2,4})$"
    Font-Size="Small">
    <CreateUserButtonStyle CssClass="button" />
    <ErrorMessageStyle Font-Size="Small" />
    <TextBoxStyle CssClass="textbox txtsingleline" />
    <ValidatorTextStyle Font-Size="Small" />
    <WizardSteps>
        <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">
        </asp:CreateUserWizardStep>
        <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server">
        </asp:CompleteWizardStep>
    </WizardSteps>
</asp:CreateUserWizard>

您可以按如下方式访问验证器:

(RequiredFieldValidator)((CreateUserWizardStep)CreateUserWizard1.FindControl("CreateUserWizardStep1")).ContentTemplateContainer.FindControl("UserNameRequired")
(RequiredFieldValidator)((CreateUserWizardStep)CreateUserWizard1.FindControl("CreateUserWizardStep1")).ContentTemplateContainer.FindControl("PasswordRequired")
(RequiredFieldValidator)((CreateUserWizardStep)CreateUserWizard1.FindControl("CreateUserWizardStep1")).ContentTemplateContainer.FindControl("ConfirmPasswordRequired")
(RequiredFieldValidator)((CreateUserWizardStep)CreateUserWizard1.FindControl("CreateUserWizardStep1")).ContentTemplateContainer.FindControl("EmailRequired")
(CompareValidator)((CreateUserWizardStep)CreateUserWizard1.FindControl("CreateUserWizardStep1")).ContentTemplateContainer.FindControl("PasswordCompare")
(RegularExpressionValidator)((CreateUserWizardStep)CreateUserWizard1.FindControl("CreateUserWizardStep1")).ContentTemplateContainer.FindControl("EmailRegExp")

希望这有助于谢谢你:)

于 2012-07-28T19:51:58.703 回答
0

为 ValidationGroup 使用正确的 ID。应该是“RegisterUser”而不是“CreateUserWizard1”

于 2013-06-11T09:47:32.443 回答