我使用了错误的验证器吗?

时间:2014-02-04 17:01:42

标签: c# asp.net

这是我的DDL和RequiredFieldValidator:

<asp:DropDownList ID="ddlCurrentlyActive" runat="server">
     <asp:ListItem Text="Select Option" Selected="True" disabled="diaabled" />
     <asp:ListItem Value="True" Text="True" />
     <asp:ListItem Value="False" Text="False" />
</asp:DropDownList>

<asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" ErrorMessage="Please select if the job is active or no active." ControlToValidate="ddlCurrentlyActive" ForeColor="red" />

我想如果我禁用了“选择选项”并添加了一个RequiredFieldValidator,则会阻止他们选择“选择选项”。但是,当页面加载时,似乎选择了此选项,如果它们没有更改它,它会尝试将其作为数据库的值传递,从而导致截断错误。

这可以使用RequiredFieldValidator吗?或者我需要一个RegularExpressionValidator,如果是这样,我该如何设置呢?

3 个答案:

答案 0 :(得分:2)

首先,您需要为默认选项指定一些值:

<asp:ListItem Text="Select Option" Selected="True" Value="0" />

然后告诉验证者这个值是初始的,应该被视为无效。您可以使用InitialValue属性:

执行此操作
<asp:RequiredFieldValidator ID="RequiredFieldValidator7"
                            runat="server"
                            ErrorMessage="Please select if the job is active or no active."
                            ControlToValidate="ddlCurrentlyActive"
                            InitialValue="0"
                            ForeColor="red" />

答案 1 :(得分:1)

答案 2 :(得分:0)

Andrei说应该有用,但还有另一种方法可以做到。您可以简单地为默认选项提供空白值,这将启动验证程序而无需在验证程序上提供InitialValue参数

<asp:DropDownList ID="ddlCurrentlyActive" runat="server">
     <asp:ListItem Text="Select Option" Selected="True" Value="" />
     <asp:ListItem Value="True" Text="True" />
     <asp:ListItem Value="False" Text="False" />
</asp:DropDownList>

<asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" ErrorMessage="Please select if the job is active or no active." ControlToValidate="ddlCurrentlyActive" ForeColor="red" />