2009-02-12 3 views
3

Я создаю веб-элемент управления в vb.net, который содержит окно списка. Я знаю, что я могу выбрать режим выбора Single или Multiple, но я заинтересован в ограничении множественного выбора до заданного размера. Например, запретить пользователю выбирать более трех элементов.Ограничить выбор в списке в vb.net

Я попытался добавить валидатор в список, который может быть способом продвижения вперед, но задавался вопросом, есть ли способ изменить режим выбора на нечто, отличное от двух указанных.

Любые идеи или предложения будут высоко оценены

Edit: К сожалению, из-за ограничения проекта я не могу использовать Javascript по этой проблеме. очень раздражает, я знаю!

ответ

2

Вы можете попробовать обработать одно из событий SelectedIndexChange. При множественном выборе каждый раз, когда это событие срабатывает, вы можете проверить, сколько элементов уже выбрано. Если это больше, чем вы хотите, попросите обработчик снять выделение с выбранного объекта. Вы также можете поставить небольшую красную метку под списком «Извините, допустимо не более [n]».

EDIT: Просто заметили, что вы сказали WEB. Используется одна и та же теория, но это нужно сделать с помощью Javascript.

+0

Благодарим за это. Единственная проблема заключается в том, что я не могу использовать Javascript для решения этой проблемы из-за (раздражающих) ограничений проекта. – chillysapien

+0

В этом случае вы * можете * использовать Autopostback, но я не уверен, что это будет работать для множественного выбора. Является ли AJAX опцией? Это может сработать. –

+0

@Dave: Я не понимаю, почему это было бы сильно по-другому в Интернете. Если в списке установлен AutoPostBack установлен значение true, он должен срабатывать каждый раз, когда выполняется выбор. Затем вы можете запустить код проверки во время обратной передачи (или частичной обратной передачи в AJAX). – TheTXI

0

В событии SelectedIndexChanged напишите короткий фрагмент кода, который будет проверять количество выбранных элементов, и если он больше требуемой суммы, отмените выбор нового выбора (или отмените выбор самого старого, или, если хотите, чтобы это было работать).