如何限制用户选择不超过10个asp.net复选框?

时间:2011-01-26 18:45:35

标签: asp.net vb.net visual-studio-2008

如何限制用户在按钮点击事件中选择不超过10个asp.net复选框,如果用户选择了10个以上的复选框,那么会弹出警告框,你不能选择10个以上的复选框?

2 个答案:

答案 0 :(得分:2)

如果页面上没有多少复选框,则为复选框创建一个onlcick javascript函数,并遍历所有复选框以查看是否选中了超过10个。

如果页面上有很多复选框,则在单击复选框时递增变量,在取消选中复选框时递减。您将拥有始终可以检查的计数以显示警报。

答案 1 :(得分:1)

您可以使用CustomValidator并实施其ServerValidate事件(并且可选地,通过其ClientValidationFunction在客户端上执行相同操作)。

也许是这样的(如果你使用的是jQuery):

ASPX

<asp:CheckBoxList ID="Checkboxes" runat="server" />
<asp:CustomValidator ID="CheckboxValidator" runat="server" Display="None" ClientValidationFunction="CheckboxValidator_ClientValidate" OnServerValidate="CheckboxValidator_ServerValidate" ErrorMessage="Too many selections" />
<asp:ValidationSummary runat="server" />

<script type="text/javascript">
    function CheckboxValidator_ClientValidate(sender, args) {
        args.IsValid = jQuery('#<%=Checkboxes.ClientID%> input:checked').length < <%= MaximumSelections %>;
    }
</script>

代码隐藏

protected const int MaximumSelections = 10;

protected void CheckboxValidator_ServerValidate(object sender, ServerValidateEventArgs args)
{
    args.IsValid = Checkboxes.Items.Cast<ListItem>().Where(i => i.Selected).Count() < MaximumSelections;
}