针对asp.net Listbox的RequeredFieldValidaor

时间:2014-05-08 10:42:46

标签: c# asp.net listbox requiredfieldvalidator

我有一个像这样的列表框:

<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>

列表框最初为空,但随后会根据用户选择进行填充。 我遇到的问题是,在添加项目之后,验证仍然失败。

仅当用户实际点击(选择)列表中的项目时才有效。

我希望验证仅在列表框为空时失败。我知道我可以自定义解决方法,但我希望这可以使用验证摘要来检查页面上的其他控件。

能做到吗?

2 个答案:

答案 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"/>