1

ユーザー作成ウィザードでユーザーを作成しようとしています。電子メールの検証には、正規表現制御を使用しています。ControlToValidateメール テキスト ボックスの id にプロパティを指定しました。間違った電子メール ID を指定して [ユーザーの作成] をクリックすると、エラー メッセージが表示<asp:RegularExpressionValidator>ます。 メールのフォーマットが間違っている場合にユーザー登録をやめる方法を教えてください。CreatingUserこのようにイベントを変更しようとしています

protected void CreateUserWizard1_CreatingUser(object sender, LoginCancelEventArgs e)
        {
            bool allfieldsstatus = false;
            RegularExpressionValidator emailvalidator = (RegularExpressionValidator)CreateUserWizardStep1.ContentTemplateContainer.FindControl("emailvalidator");

            if (!emailvalidator.Visible)
            {
                allfieldsstatus = true;
            }

            if (allfieldsstatus)
            {
                e.Cancel = false;
            }
            else
            {
                e.Cancel = true;
            }
        }

しかし、これは機能していません。可視性プロパティがまったく表示されません。 これもうまくいかないifという状態 で別の方法で試しました。プロパティは常に構成に存在するif(!emailvalidator.ErrorMessage.length!=0) { allfieldstatus = true; }ため 、これに対する解決策は何ですか?ErrorMessage<asp:RegularExpressionValidator >

<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" 
            CssClass="createUseWizard" AutoGeneratePassword="True" ContinueDestinationPageUrl="~/Account/AdminRegister.aspx"
            CreateUserButtonText="Register User" 
            OnCreatedUser="CreateUserWizard1_CreatedUser" BorderStyle="None" 
            DisplayCancelButton="True" oncreatinguser="CreateUserWizard1_CreatingUser" 
            LoginCreatedUser="False">
            <WizardSteps>
                <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">
                    <ContentTemplate>
                        <div id="registerUserDiv">
                            <div id="registerUserHeader">
                                Register New User
                            </div>
                            <div>
                                <div class="registerUserLable">
                                    <asp:Label ID="UserNameLabel" runat="server" Text="User Name" AssociatedControlID="UserName"></asp:Label>
                                </div>
                                <div class="inputTextbox">
                                    <asp:TextBox ID="UserName" runat="server"></asp:TextBox>
                                    <asp:RequiredFieldValidator CssClass="showInRed" ID="UserIDrequired" runat="server" ControlToValidate="UserName"
                                        ErrorMessage="Email is required." ToolTip="User Name is required." ValidationGroup="CreateUserWizard1"
                                        SetFocusOnError="True">*</asp:RequiredFieldValidator>
                                </div>
                            </div>
                            <div>
                                <div class="registerUserLable">
                                    <asp:Label ID="Label1" runat="server" Text="E-mail" AssociatedControlID="Email"></asp:Label></div>
                            </div>
                            <div class="inputTextbox">
                                <asp:TextBox ID="Email" runat="server"></asp:TextBox>
                                <asp:RequiredFieldValidator CssClass="showInRed" ID="RequiredFieldValidator1" runat="server"
                                    ControlToValidate="Email" ErrorMessage="E-mail is required." ToolTip="E-mail is required."
                                    ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>                                
                            </div>
                            <div>
                                <div class="registerUserLable">
                                    <asp:Label ID="Label2" Text="Select Role" runat="server" />
                                </div>
                                <div class="inputTextbox">
                                    <asp:DropDownList ID="rolesDropdown" runat="server">
                                    </asp:DropDownList>
                                </div>

                            </div>
                            <div>
                                <div class="errorEmail">
                                    <asp:RegularExpressionValidator ID="emailvalidator" runat="server" 
                                    ErrorMessage="Email Should be in correct format" ControlToValidate="Email" 
                                    SetFocusOnError="True" 
                                    ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" 
                                        Display="Dynamic"></asp:RegularExpressionValidator>
                                </div>
                            </div>
                            <div>
                                <asp:Literal ID="ErrorMessage" runat="server" EnableViewState="False"></asp:Literal>
                            </div>
                        </div>
                    </ContentTemplate>
                </asp:CreateUserWizardStep>
                <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server">
                </asp:CompleteWizardStep>
            </WizardSteps>
        </asp:CreateUserWizard>
4

2 に答える 2

2

IsValid一般に、単一のバリデータ コントロールのプロパティまたはページ自体のプロパティで検証に合格したかどうかを確認する必要があります。

if (!emailvalidator.IsValid) {
    e.Cancel = true;
}

また

if (!Page.IsValid) {
    e.Cancel = true;
}

NextButtonClickウィザードの場合、およびFinishButtonClickイベント ハンドラでこのチェックを実行できます。

于 2013-02-08T08:19:04.150 に答える
0

RegExpの問題だと思われる場合は、これを試してください:

/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i
于 2013-02-08T08:24:35.187 に答える