【问题标题】:Problem with Server Side Validation Control in .NET.NET 中的服务器端验证控制问题
【发布时间】:2011-07-13 11:47:27
【问题描述】:

我在 .NET 中遇到了验证问题

我正在对文本框使用服务器端验证,为此我应用了必填字段和范围验证器。我的问题是我想在同一个地方显示消息,而不是对这两个消息都使用
。 假设我离开了它说“它是必需的”的文本框,如果我输入了超出范围的值,它说“范围必须是 1 到 100”,但是两条消息都在不同的地方,这看起来不太好。

我不想使用验证摘要,我尝试了“validationGroup”和“Display”属性,但仍然没有得到解决方案。

谁能知道?

<asp:TextBox ID="txtEmpID" runat="server" CssClass ="textbox"></asp:TextBox>
            <br />
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
                ControlToValidate="txtEmpID" ErrorMessage="Emp ID is Must" 
                Display ="Dynamic"></asp:RequiredFieldValidator>
                <br />
            <asp:RangeValidator ID="RangeValidator1" runat="server" 
                ControlToValidate="txtEmpID" ErrorMessage="Range must be 1 -100" 
                MaximumValue="100" MinimumValue="1" Type="Integer" Display ="Dynamic"></asp:RangeValidator>

【问题讨论】:

    标签: .net asp.net visual-studio validation


    【解决方案1】:

    您可以使用 CustomValidator 并手动验证它。您将在一个地方收到消息并进行一次验证。另一个解决方案是只有 RangeValidator 并启用它,即使 TextBox 值为空。 ValidateOnEmpty="true" 如果我​​没记错的话

    【讨论】:

    【解决方案2】:

    您现在在两个验证器之间有一个硬编码的&lt;br /&gt;。删除它(也许将它添加到第一个验证器的 ErrorMessage 中:ErrorMessage="Emp ID is Must&lt;br /&gt;")。

    您已经拥有Display=Dynamic,因此非触发验证器不会占用空间。

    【讨论】:

    • @subeer:究竟是什么'不起作用'?你看到了什么,你想看到什么?
    【解决方案3】:

    ysrb 是对的,您只需要 RangeValidator,因为即使文本框为空,消息“范围必须为 1 -100”也适用

    【讨论】:

    • 不,范围验证器不会为空文本框触发。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-03
    • 2013-09-06
    • 2014-07-08
    • 2022-12-31
    • 2012-03-03
    • 1970-01-01
    相关资源
    最近更新 更多