Вставьте пользовательский валидатор, добавьте в него желаемое сообщение об ошибке, дважды щелкните по пользовательскому валидатору, чтобы перейти к коду позади обработчика событий, и затем вы реализуете серверную часть следующим образом:
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = ListBox1.Items.Count > 0;
}
Также вы можете реализовать клиентский javascript.
Я просто выкинул это на страницу и быстро протестировал, так что вам, возможно, придется немного его подправить: (Кнопка1 только добавляет элемент в список)
<script language="JavaScript">
<!--
function ListBoxValid(sender, args)
{
args.IsValid = sender.options.length > 0;
}
// -->
</script>
<asp:ListBox ID="ListBox1" runat="server"></asp:ListBox>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" ValidationGroup="NOVALID" />
<asp:Button ID="Button2" runat="server" Text="ButtonsUBMIT" />
<asp:CustomValidator ID="CustomValidator1" runat="server"
ErrorMessage="CustomValidator"
onservervalidate="CustomValidator1_ServerValidate" ClientValidationFunction="ListBoxValid"></asp:CustomValidator>
Если вы добавляете сводку проверки на страницу, текст этой ошибки должен отображаться в этой сводке, если в ListBox или другом элементе управления коллекцией нет элементов, которые вы когда-либо захотите использовать, если только ValidationGroup такой же.