出于某种原因,当我做错事时,我无法让验证器发出标志。<asp:DropDownList ID="ddlTypeList" runat="server" DataSourceID="ods_TypeOptions" DataTextField="name" DataValueField="id" SelectedValue='<%# Bind("Type") %>' AppendDataBoundItems="true">
<asp:ListItem Text="-" Value="-1" Selected="True"></asp:ListItem>
</asp:DropDownList>
下拉列表有很好的值,包括初始虚拟值。
两者都不<asp:RequiredFieldValidator ID="rfw" runat="server" ControlToValidate="ddlTypeList"
InitialValue="-1" ToolTip="Required">*</asp:RequiredFieldValidator>
也不<asp:CompareValidator ID="cv" runat="server" ControlToValidate="ddlTypeList" ValueToCompare="-1" Operator="NotEqual" ToolTip="Required">*</asp:CompareValidator>
举起任何标志说“嘿 - 你搞砸了,去修理它”。对于所有的谷歌、搜索、评论、挥舞大锤,我还没有发现我做错了什么。
我只想要一种解决方案来解决所有问题。
哦,是的,我也有一个 ValidationGroup="myGroup"
DDL、RFV/CV 和按钮之间。没运气。
最佳答案
你的代码是正确的。您必须有一些阻碍验证器功能的代码或标记元素。 “-”项是否可能有它的value
从“-1”更改为其他内容?
验证您提交表单的按钮是否具有 CausesValidation=True
.此外,请确保验证器的父级未设置为 Visible=False
否则 child 将不会在页面上呈现。
验证 RequiredFieldValidator
和 CompareValidator
通过在输出的标记中搜索“_cv”或可能的“cv”来呈现标记。如果它不存在,则未呈现父元素之一或正在删除验证器。
关于asp.net - 下拉列表和字段验证引发骚乱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6293215/