首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ValidationSummary未显示

ValidationSummary未显示
EN

Stack Overflow用户
提问于 2010-12-12 18:04:08
回答 1查看 2.3K关注 0票数 0

我有一些带有验证摘要的验证控件。在用户离开文本框进行验证后,客户端验证就会出现。服务器端验证显示从来没有出现过。Validationsummary显示never up。

我做错了什么?

代码语言:javascript
复制
                    <div class="designPhotoMiddleText" id="MiddleReg" >
                <asp:Panel DefaultButton="linkRegister" runat="server" ID="panRegister" >
                    Jetzt kostenlos registrieren:<br />
                    <br />

                    <table>
                        <tr>
                            <td style="width: 120px;">
                                Username:
                            </td>
                            <td>
                                <asp:TextBox ID="txtRegisterUsername" Width="150px" runat="server"></asp:TextBox>
                                <asp:CustomValidator ValidationGroup="Register" ID="valUsername" ControlToValidate="txtRegisterUsername"
                                 OnServerValidate="IsUsernameFree" CssClass="validator"
                                 runat="server" ErrorMessage="CustomValidator"></asp:CustomValidator>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Passwort:
                            </td>
                            <td>
                                <asp:TextBox ID="txtRegisterPW1" Width="150px" TextMode="Password" runat="server"></asp:TextBox>
                                <asp:RegularExpressionValidator ValidationGroup="Register" CssClass="validator" ControlToValidate="txtRegisterPW1" ID="valPasswordLenght" runat="server" ErrorMessage="Das Passwort muss mindestens 6 Zeichen haben."></asp:RegularExpressionValidator>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Passwort erneut:
                            </td>
                            <td>
                                <asp:TextBox ID="txtRegisterPW2" Width="150px" TextMode="Password" runat="server"></asp:TextBox>
                                <asp:CompareValidator CssClass="validator" ValidationGroup="Register"
                                    ID="valPW"  ControlToCompare="txtRegisterPW2" ControlToValidate="txtRegisterPW1" runat="server" ErrorMessage="Die eingegebenen Passwörter stimmen nicht überein."></asp:CompareValidator>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Email:
                            </td>
                            <td>
                                <asp:TextBox ID="txtRegisterEmail" Width="150px" runat="server"></asp:TextBox>
                                <asp:RegularExpressionValidator ValidationGroup="Register" CssClass="validator" ForeColor="black" 
                                    ControlToValidate="txtRegisterEmail" ID="valMail" runat="server" 
                                    ValidationExpression=".*@.*\.(com|net|org|edu|mil|at?|de?|ch?|uk?)$" 
                                    ErrorMessage="Bitte geben Sie eine gültige EMail-Adresse ein." 
                                    Display="Dynamic"></asp:RegularExpressionValidator>
                            </td>
                        </tr>   
                        <tr>
                            <td>
                            </td>
                            <td>
                                <asp:CheckBox ID="chkRegsiterAGBs" runat="server" />
                                <asp:HyperLink ID="linkAGB" Target="_blank" NavigateUrl="~/AGBs.aspx" runat="server">AGBs</asp:HyperLink> gelesen
                                <asp:CustomValidator ValidationGroup="Register" ID="valAGB" 
                                 OnServerValidate="IsAGBChecked" CssClass="validator"
                                 runat="server" ErrorMessage="CustomValidator"></asp:CustomValidator>
                            </td>
                        </tr>
                        <tr>
                            <td colspan="2">
                                <asp:LinkButton CausesValidation="true" ID="linkRegister" CssClass="linkWhite" runat="server" 
                                    onclick="linkRegister_Click">Jetzt Registrieren</asp:LinkButton>
                                <asp:ValidationSummary ValidationGroup="Register" ID="sumRegister" runat="server" 
                                HeaderText="Fehler:"
                                ShowSummary="true" DisplayMode="BulletList" />
                            </td>
                        </tr>
                    </table>
                    </asp:Panel>
                </div>



    public void IsUsernameFree(object source, ServerValidateEventArgs value)
    {
        string username = value.Value;
        DAL.User user = DAL.UserHandling.GetUserByName(username);
        value.IsValid = (user == null);
    }

    public void IsAGBChecked(object source, ServerValidateEventArgs value)
    {
        value.IsValid = (chkRegsiterAGBs.Checked);
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-12 18:48:48

从您发布的代码中无法确定,但是您是否在任何地方检查了页面的IsValid属性?例如,在运行任何其他方法之前?

代码语言:javascript
复制
if (Page.IsValid){

    //Do additional processing
    //register user etc.
}

此检查将强制执行页面上的所有验证控件,然后应触发验证错误的显示。

编辑:

您需要在定义linkRegister控件的标记中将ValidationGroup设置为“Register

代码语言:javascript
复制
`<asp:LinkButton CausesValidation="true" ID="linkRegister" CssClass="linkWhite" runat="server" OnClick="linkRegister_Click" ValidationGroup="Register">Jetzt Registrieren</asp:LinkButton>`

此外,您的密码RegularExpressionValidator需要在标记中设置其ValidationExpression属性:

代码语言:javascript
复制
`<asp:RegularExpressionValidator ValidationGroup="Register"
    CssClass="validator" ControlToValidate="txtRegisterPW1"
    ID="valPasswordLenght" runat="server" ErrorMessage="Das Passwort
    muss mindestens 6 Zeichen haben." Validationexpression="[\w+\d+]{6,}"
</asp:RegularExpressionValidator>`
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4421128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档