这是我的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,如果是这样,我该如何设置呢?
答案 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)
您可以设置Required Validator的初始值属性。 看到: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.requiredfieldvalidator.initialvalue(v=vs.110).aspx
答案 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" />