c# - 如何在 Bootstrap 中使用 RequiredFieldValidator 和 ValidationSummary

标签 c# asp.net webforms

我是 ASP.Net 的新手,有一个关于 ValidationSummary 或 Validator 的简单问题。问题是,即使没有验证错误,我的警报 div 仍然显示。 ASP.Net 生成用于客户端验证的代码,那么我如何才能仅在发生错误时显示警报 div,这甚至可能吗?我认为 ValidationSummary 在这种情况下可能会有所帮助,但我不确定,希望有人能帮助我。

当前页面:

<asp:Login ID="LoginForm" runat="server" ViewStateMode="Disabled" RenderOuterTable="False" OnAuthenticate="LoginForm_Authenticate">
    <LayoutTemplate>
            <div class="alert alert-danger" role="alert">
                <p><asp:RequiredFieldValidator ID="RequiredFieldValidatorUserName" runat="server" ErrorMessage="RequiredFieldValidator" ControlToValidate="UserName" Display="Dynamic"></asp:RequiredFieldValidator></p>
                <p><asp:RequiredFieldValidator ID="RequiredFieldValidatorPassword" runat="server" ErrorMessage="RequiredFieldValidator" ControlToValidate="Password" Display="Dynamic"></asp:RequiredFieldValidator></p>
            </div>
            <div class="form-group">
                <asp:TextBox runat="server" CssClass="form-control" ID="UserName" />
                <asp:TextBox runat="server" CssClass="form-control" ID="Password" TextMode="Password"/>
            </div>
            <asp:Button runat="server" ID="Login" CommandName="Login" CssClass="btn btn-default btn-primary" Text="Login" />
    </LayoutTemplate>
</asp:Login>

最佳答案

RequiredFieldValidator 应位于每个 TextBox 的下方或上方,并带有 SetFocusOnError="True"

如果需要,您可以使用 ValidationSummaryalert alert-danger 样式来显示所有验证器的合并验证消息。

enter image description here

<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<style type="text/css">
    .panel-login {
        margin: 10px auto;
        max-width: 400px;
    }

    .alert-text {
        color: #a94442;
    }
</style>
<div class="panel panel-default panel-login">
    <div class="panel-heading">
        <div class="panel-title">Login</div>
    </div>
    <div class="panel-body form-horizontal">
        <asp:ValidationSummary runat="server" ID="ValidationSummary1" 
            DisplayMode="BulletList"
            ShowMessageBox="False" ShowSummary="True" CssClass="alert alert-danger" />
        <div class="form-group">
            <label class="control-label col-sm-4">
                Useranme
            </label>
            <div class="col-sm-8">
                <asp:TextBox runat="server" CssClass="form-control" ID="UserName" />
                <asp:RequiredFieldValidator ID="RequiredFieldValidatorUserName" 
                    runat="server"
                    ErrorMessage="Please enter username." ControlToValidate="UserName"
                    Display="Dynamic" SetFocusOnError="True" CssClass="alert-text" />
            </div>
        </div>
        <div class="form-group">
            <label class="control-label col-sm-4">
                Password
            </label>
            <div class="col-sm-8">
                <asp:TextBox runat="server" CssClass="form-control" ID="Password" 
                    TextMode="Password" />
                <asp:RequiredFieldValidator ID="RequiredFieldValidatorPassword" 
                    runat="server"
                    ErrorMessage="Please enter password." ControlToValidate="Password"
                    Display="Dynamic" SetFocusOnError="True" CssClass="alert-text" />
            </div>
        </div>
        <div class="form-group">
            <div class="col-sm-offset-4 col-sm-8">
                <asp:Button runat="server" ID="Login" CommandName="Login"
                    CssClass="btn btn-default btn-primary" Text="Login" />
            </div>
        </div>
    </div>
</div>

关于c# - 如何在 Bootstrap 中使用 RequiredFieldValidator 和 ValidationSummary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26469734/

相关文章:

.net - 关于跳过强名称验证的奇怪问题

ASP.NET:带有文本框的复选框列表?

asp.net - 设置一个asp :DropDownList的html 'name'属性

c# - 尝试传递局部 View 时字典类型错误

c# - 对 DataTable 进行排序不起作用

c# - .exe 和 .dll 之间的共享配置

c# - Asp.Net SQL删除语句

ruby-on-rails - 在Rails中创建所见即所得的表单生成器(la Wufoo)

c# - 使用 Json.NET 反序列化字符串和对象的混合集合

c# - 如何使按钮不显示但仍被javascript使用?