Вы можете сделать это с помощью процедуры CustomValidator.
<asp:CustomValidator ID="ListBox5ItemsValidator" runat="server"
OnServerValidate="ListBox5ItemsValidator_ServerValidate"
ClientValidationFunction="ListBox5ItemsValidator_ClientValidate"
ControlToValidate="MyListBox">
</asp:CustomValidator>
Код на стороне сервера:
protected void ListBox5ItemsValidator_ServerValidate(
object source, ServerValidateEventArgs args) {
int selectionCount = 0;
foreach (ListItem item in MyListBox.Items) {
if (item.Selected) selectionCount++;
}
args.IsValid = (selectionCount >= 1 && selectionCount <= 5);
}
Код на стороне клиента:
function ListBox5ItemsValidator_ClientValidate(sender, args) {
var selectionCount = $('#<% =MyListBox.ClientID %> option:selected').length;
args.IsValid = (selectionCount >= 1 && selectionCount <= 5);
};
Замените MyListBox реальным именем вашего ListBox, которое вы хотите проверить. Если ваш ListBox содержится внутри других контейнерных элементов управления, вам может потребоваться немного больше работы для ссылки на элемент управления как на стороне сервера, так и на стороне клиента. Например, если он содержится в элементе управления FormView с именем FormView1, вы должны использовать
ListBox MyListBox = (ListBox)FormView1.FindControl("MyListBox");