我有一个像这样的列表框:
<asp:ListBox runat="server" ID="lbSelectedUsers" SelectionMode="Multiple" Height="200" Width="100"></asp:ListBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ValidationGroup="ValidationGroup" ErrorMessage="No users selected." ControlToValidate="lbSelectedUsers"</asp:RequiredFieldValidator>
列表框最初为空,但随后会根据用户选择进行填充。 我遇到的问题是,在添加项目之后,验证仍然失败。
仅当用户实际点击(选择)列表中的项目时才有效。
我希望验证仅在列表框为空时失败。我知道我可以自定义解决方法,但我希望这可以使用验证摘要来检查页面上的其他控件。
能做到吗?
答案 0 :(得分:1)
这不是RequiredFieldValidator的用途 - 它只检查是否已选择某些内容。
在您的情况下,您需要使用自定义验证器(http://msdn.microsoft.com/en-us/library/9eee01cx(VS.80).aspx) - 这将与ValidationSummary控件一样,与任何其他验证控件一样(只要您正确设置ValidationGroup,如果使用的话)。 / p>
您需要做的就是编写一个自定义&#34; ClientValidationFunction&#34;如果没有项目将返回false,如果有项目则返回true。
答案 1 :(得分:0)
当您绑定列表框时,设置InitialValue属性并为其分配RFV。
<asp:ListItem Value="Australia">Australia</asp:ListItem>
<asp:ListItem Selected="True" Value="NoCountry">--ChooseCountry--</asp:ListItem>
<asp:ListItem Value="USA">USA</asp:ListItem>
</asp:ListBox>
<asp:RequiredFieldValidator id="valList"
ForeColor="#FF0000"
ErrorMessage="Selection Invalid!"
ControlToValidate="list"
InitialValue="NoCountry"
EnableClientScript="False"
runat="server"/>